Bucket — основная единица организации в объектном хранилище (Object Storage). Аналог папки верхнего уровня, но с дополнительными свойствами: регион хранения, политики доступа (ACL, Bucket Policy), версионирование объектов, жизненный цикл (lifecycle rules). Объект в бакете доступен по URL: https://bucket-name.s3.amazonaws.com/object-key.
S3-совместимый API
Amazon S3 стал фактическим стандартом объектного хранилища. S3 API поддерживают: AWS S3, VK Cloud Object Storage, Яндекс Object Storage, Hetzner Object Storage, MinIO (self-hosted). Код, написанный для S3, работает с любым S3-совместимым провайдером без изменений.
Основные операции
# AWS CLI
aws s3 mb s3://my-bucket # создать бакет
aws s3 cp file.txt s3://my-bucket/ # загрузить объект
aws s3 ls s3://my-bucket # список объектов
aws s3 sync ./local/ s3://my-bucket/ # синхронизировать
# Публичный доступ к объекту
aws s3 presign s3://my-bucket/file.txt --expires-in 3600
Типичные применения
- Хранение статических файлов сайта (JS, CSS, изображения).
- Бэкапы баз данных и файлов.
- Медиа-хранилище для видео и изображений.
- Статический хостинг сайта (S3 Website).
- Журналы (logs) с дешёвым хранением через Glacier.
Настройки доступа
Бакеты по умолчанию приватны. Публичный доступ: Bucket Policy или ACL. В AWS S3 с 2023 года Block Public Access включён по умолчанию. Pre-signed URLs — временные ссылки на приватные объекты.
История
Amazon S3 запущен в марте 2006 года. Термин «bucket» пришёл из внутренней документации AWS. В 2010 году OpenStack Object Storage (Swift) создал альтернативу с аналогичной концепцией containers. MinIO (2014) — популярный self-hosted S3-совместимый сервер.
Связь с хостингом
Объектное хранилище — часть инфраструктуры современного хостинга: бэкапы серверов, медиафайлы CMS, статические ассеты. На VDS можно запустить MinIO для собственного S3-совместимого хранилища. VK Cloud и Яндекс.Облако предлагают S3-совместимое хранилище по российским ценам.
История объектного хранилища и Bucket
Amazon S3 (Simple Storage Service) запущен в марте 2006 года — первый коммерческий сервис объектного хранилища. Концепция Bucket как пространства имён появилась именно в S3 API. В 2007 году Rackspace Cloud Files стал вторым крупным объектным хранилищем. OpenStack Swift (2010) принёс open-source реализацию. S3 API стал де-факто стандартом: его поддерживают VK Cloud, Yandex Object Storage, Hetzner Object Storage, Backblaze B2.
Применение Bucket на практике
| Сценарий | Пример |
|---|---|
| Статика сайта | CSS, JS, изображения через CDN |
| Бэкапы | дампы MySQL, архивы файлов |
| Медиафайлы | видео, фото для WordPress |
| Логи | долгосрочное хранение логов приложений |
| Артефакты сборки | Docker-образы, деплой-пакеты |
Настройка Bucket для статического хостинга
S3-совместимый Bucket с публичным доступом заменяет простой веб-сервер для статических файлов. В сочетании с Cloudflare или встроенным CDN стоимость раздачи статики минимальна ($0.004-0.023/GB). Для WordPress плагин WP Offload Media переносит загрузки в S3.
Типичные ошибки
- Public bucket без политики — все файлы доступны интернету без авторизации.
- Хранение application secrets в bucket вместо Vault или environment variables.
- Отсутствие версионирования объектов — случайное удаление невозможно откатить.
- Один bucket для разных окружений: перепутать prod и staging данные легко.