В ожидании пояснительного комментария, который я оставил, я объясню оба варианта.DigitalOcean Spaces использует Ceph RGW в качестве реализации S3, но ответы здесь применимы как к DigitalOcean Spaces, так и к AWS S3.
Отказ от ответственности: я работаю специально с DigitalOcean Spaces, потому что это развертывание Ceph.
filesystem-on-top-of-S3
Это то, что вы делаете прямо сейчас, есть множество вариантов, например s3fs
.Страница s3fs ограничения связана с некоторыми проблемами, связанными с файловой системой на вершине S3.
Основным преимуществом здесь является то, что вы получаете ее в своей файловой системе и можете в основном подключитьэто в приложения напрямую, без изменения приложений.Это может сломаться в зависимости от согласованности и POSIX, а также быть медленным, поскольку теперь оно ограничено задержкой до S3, с множеством циклов.
Основной недостаток - вам часто требуется один и тот же оригинальный инструмент для доступа к контентуопять же, как файловая система, и она не всегда доступна напрямую, как вы скопировали контент на веб-сервер.
Native S3
Если вам не нужны программы для прозрачногооткрывайте содержимое S3, как будто оно находится в локальной файловой системе, лучше использовать S3 в нативном методе.Загрузите ваш контент с помощью s3cmd
или rclone
(довольно быстро) и относитесь к нему больше как к веб-серверу статического контента, чем к локальной файловой системе.Не устанавливайте ваш контент как общедоступный, если вы действительно не хотите, чтобы он был публичным, и вы можете рассмотреть возможность использования SSE-C для шифрования данных, если вы не хотите, чтобы они были незашифрованными после того, как они покидают ваш непосредственный контроль.
Другой важный совет заключается в том, что вы должны попытаться минимизировать задержку от капли до конечной точки пространства.Выберите места, самые близкие к вашей капле.