Привычные инструменты
Подключите aws-cli, rclone, boto3 или другой S3-клиент. Замените endpoint и ключи, сохраните код загрузки файлов.
S3 STORAGE · BETA
S3-совместимое хранилище для загрузок пользователей, медиа и бэкапов. Приложение обновляется и перезапускается, а файлы остаются в бакете.
Бета-версия. Для критичных данных держите ещё одну копию. Оплачиваются занятый объём и трафик.
Подключите aws-cli, rclone, boto3 или другой S3-клиент. Замените endpoint и ключи, сохраните код загрузки файлов.
Храните загрузки и бэкапы вне контейнера. Пересборка приложения не удалит объекты из бакета.
Прямые ссылки для публичных файлов, временные подписанные ссылки — для личных документов.
НАЧАТЬ РАБОТУ
Выберите имя, проект и режим доступа: публичный или приватный. Данные будут храниться на серверах в России.
Получите endpoint и ключи доступа в консоли. Передайте ключи приложению через переменные окружения, не добавляя их в репозиторий.
Отправляйте файлы через S3-совместимый SDK или CLI. Используйте публичные URL или подписанные ссылки с ограниченным сроком действия.
S3-бакеты доступны в бета-версии. Встроенного CDN, версионирования объектов и детальных IAM-политик пока нет.
Создание бакетов и работа по S3-протоколу уже работают, часть возможностей дорабатывается. Для бэкапов, статики и пользовательских загрузок пригодно, для единственной копии критичных данных — пока нет.
Файлы отдаются напрямую из хранилища. Для проекта с российской аудиторией этого обычно достаточно, но глобальную раздачу с краевых узлов сейчас нужно строить отдельно.
Перезапись объекта заменяет его. Если нужна история версий файла, храните её ключами с датой или отдельными бакетами — восстановить перезаписанный объект платформа не сможет.
Гранулярные политики уровня Amazon IAM пока не поддерживаются. Разграничивать доступ проще отдельными бакетами под разные задачи: публичная статика, приватные документы, бэкапы.
Оплата идёт за занятое место и трафик. Раздача тяжёлого видео напрямую пользователям — рабочий сценарий, но её стоит посчитать заранее, а не обнаружить в счёте.
В статусе Beta. Создание S3-совместимых бакетов работает, часть возможностей ещё дорабатывается. Не закладывайте его в критичные сценарии, пока хранилище не вышло из беты — для бэкапов и статики оно уже пригодно, для единственной копии важных данных пока нет.
API S3-совместимый, поэтому работают привычные инструменты: aws-cli, s3cmd, rclone, MinIO Client и SDK для Python, Node.js, Go, PHP. Достаточно указать в конфигурации адрес эндпоинта платформы вместо адреса Amazon.
По объёму: вы платите за реально занятое место и трафик, а не за фиксированный тариф диска. Пустой бакет не стоит ничего, а расход растёт вместе с реальными данными.
Access key и secret key выдаются в панели по запросу — они лежат в отдельном секрете подключения. Класть их в репозиторий не нужно: в приложение они попадают переменными окружения.
Да. Публичные объекты отдаются по прямой ссылке, приватные — по временной подписанной ссылке с ограниченным сроком жизни. Второй вариант используют для документов и всего, что не должно индексироваться поисковиками.
Да, это основной сценарий. Дампы управляемого PostgreSQL складываются в бакет, а скачать их можно по временной ссылке из панели. Хранение бэкапов отдельно от самой базы — правило, которое спасает при потере инстанса.
На серверах в России. Если приложение хранит файлы пользователей-россиян, это тот же вопрос 152-ФЗ, что и с базой данных: про базу помнят все, про загруженные файлы — почти никто.
Крупные файлы загружаются составной загрузкой (multipart upload), которую поддерживают все совместимые клиенты, — так же, как в любом S3-хранилище. Для отдачи больших медиафайлов это штатный режим, а не обходной путь.
Нет, и это осознанно. Хранилище работает по HTTP-протоколу S3: приложение обращается к нему клиентом, а не через файловую систему. Нужен именно диск, который виден как каталог, — для приложения подключается постоянный том, это отдельный ресурс.
Ничего: объекты в бакете живут отдельно от контейнера. Именно поэтому загрузки пользователей и складывают в хранилище — локальный диск контейнера стирается при каждой сборке, и всё, что лежало рядом с кодом, исчезает вместе с ним.
Через rclone или aws-cli: указываете два эндпоинта и синхронизируете бакеты напрямую, скачивать всё к себе на ноутбук не нужно. Протокол одинаковый, поэтому перенос — это одна команда и время на трафик.