Файлы теперь лежат в ведрах

Раньше, когда пользователь загружал картинки на сайт, картинки сохранялись в папку на том же сервере. У популярных сайтов диски быстро заполнялись и требовалось следить за этим. Далее серверы начали упираться в ограничения на количество файлов в папке и на количество папок на диске.

В 2006 Амазон запустили Simple Storage Service (S3) — сервис с простым хранением файлов в облаке, призванный решить все эти вопросы. Через API загружаем файл, сервис генерирует ссылку. Файл загружается в вёдро (bucket), а не на диск. Вёдра не имеют ограничений как у папок и могут быть распределены по разным серверам.

Сейчас S3-сервис можно создать на многих хостингах в пару кликов. Также можно развернуть своё S3-хранилище с помощью Open Source, например MinIO.

Для чего это нужно нам сейчас на практике?

  • Загружать и хранить бэкапы — первое с чего обычно начинают.
  • Хранить файлы отдельно от нод, обрабатывающих запросы.
  • Отдавать статические файлы сайта (картинки, скрипты, файлы для скачивания) с отдельного сервиса.
  • Избегать ситуации с переполненным диском на сервере за счёт переноса всех больших файлов в S3.
  • Организовывать безразмерные хранилища файлов на терабайты с открытым и закрытым доступом.
  • Для S3-хранилищ есть библиотеки на всех популярных языках.
  • Все S3-совместимые хранилища работают по образцу Amazon S3, поэтому ко всем хранилищам нужна одна библиотека.
  • Для разработки в docker-compose удобно использовать образ MinIO.

Может тарифицироваться:

  • Стоимость хранения в гигабайтах.
  • Стоимость трафика загрузки в облако (чаще всего бесплатно)
  • Стоимость трафика выгрузки из облака.
  • Запросы к файлам.
  • Хранение старых версий файла (если работает с версионированием).

Для большинства проектов переход на S3 — шаг на пути к масштабированию и большим нагрузкам. Но нужно внимательно считать сценарий использования — может оказаться значительно дороже традиционных способов.

❤️ Жми на сердечко, если интересно ⚡️ Жми на молнию, если узнал новое 🧑‍💻 Жми на ботана, если работаешь с S3

Файлы теперь лежат в ведрах
Раньше, когда пользователь загружал картинки на сайт, картинки сохранялись в папку на том же сервере | Сетка — социальная сеть от hh.ru