VK Cloud

Bucket, Object и Key: как устроена модель хранения в S3-совместимых объектных хранилищах

4 сентября 2026 г.
Александр Иванов
Автор статьи
_blog_head_8.png

Объектное хранилище устроено иначе, чем файловая система на диске сервера или блочное хранилище виртуальной машины. Единица хранения здесь — не файл в иерархии директорий и не блок диска, а объект: самостоятельная сущность в плоском пространстве имён. В основе большинства объектных хранилищ лежит модель Amazon S3 (Simple Storage Service) — бакет как контейнер, объект как связка данных и метаданных, ключ как уникальный идентификатор объекта внутри бакета.

На этой модели построены типовые сценарии облачного хранения: резервное копирование, раздача статики веб-сайтов, дата-лейки, сбор логов, хранение медиаконтента. Разберём три базовых понятия — бакет, объект и ключ — и связи между ними.

Бакет — контейнер верхнего уровня

Бакет (bucket) — именованный контейнер, в котором живут объекты. Это верхний уровень организации данных: прежде чем загрузить хоть один объект, нужно создать бакет.

Имя бакета уникально в пределах пространства имён провайдера. В отличие от имени файла на локальном диске, которое может повторяться в разных папках, имя бакета существует в единственном экземпляре во всём пространстве имён сервиса — прямое следствие того, что бакет выступает верхнеуровневым идентификатором в глобальной (или региональной) системе адресации.

Структурное ограничение модели: вложенных «подбакетов» нет. Все объекты внутри одного бакета живут в едином пространстве ключей, а иллюзия иерархии директорий создаётся другими средствами — о них ниже.

Объект — единица хранения данных

Объект — базовая единица хранения. Он состоит из данных (тело объекта) и метаданных (сопутствующая информация о нём). Связка «данные + метаданные» делает объектное хранилище удобным для разных типов контента — от бинарных файлов резервных копий до статики сайтов.

Работа с объектами идёт через REST API: стандартные HTTP-методы GET, PUT, DELETE, HEAD и совместимые SDK. Объект не «открывается» и не «редактируется на месте», как файл на диске, — все операции строятся вокруг загрузки, получения и удаления целиком через сетевой протокол.

Ключ — уникальный идентификатор объекта в бакете

Ключ (key) — уникальный идентификатор объекта внутри бакета. Комбинация «бакет + ключ» однозначно адресует конкретный объект: по ней выполняется GET-запрос на получение содержимого или PUT на загрузку новой версии.

Важно знать

Символ «/» в ключе

Частая точка путаницы — символ «/» в ключе. На первый взгляд он выглядит как разделитель папок, и консоли управления вместе с SDK действительно используют его для визуальной эмуляции директорий. Но пространство ключей внутри бакета остаётся плоским: «/» — просто символ в имени, а не признак реальной иерархии файловой системы. То, что в интерфейсе выглядит как вложенные папки, на уровне хранилища — набор объектов с общим префиксом в ключе.

Как объекты адресуются и извлекаются

Обращение к объекту происходит через REST-запрос, где ключ — часть URL-пути. Существует два формата адресации:

Виртуальный хостинг-стиль

Имя бакета становится частью доменного имени: bucket.endpoint/key.

Path-style

Имя бакета указывается первым сегментом пути: endpoint/bucket/key.

Листинг объектов по префиксу

Оба формата ведут к одному и тому же объекту; разница — только в построении URL.

Поскольку реальной файловой иерархии внутри бакета нет, «просмотр содержимого папки» в интерфейсе реализуется через листинг объектов, отфильтрованных по общему префиксу ключа — тому самому символу «/».

Версионирование объектов

Версионирование меняет базовую модель «один ключ — один объект». При включённом версионировании бакета один и тот же ключ может ссылаться на несколько версий объекта, различаемых по Version ID. Загрузка нового содержимого под тем же ключом не перезаписывает предыдущие данные безвозвратно — прежняя версия остаётся доступной под своим идентификатором.

S3-совместимость: что переносится между провайдерами

Bucket, object и key — не изобретение отдельного провайдера, а часть протокола Amazon S3, ставшего отраслевым стандартом объектного хранения. S3-совместимые сервисы реализуют ту же терминологию и тот же набор операций: REST API с методами GET, PUT, DELETE, HEAD, адресацию через бакет и ключ, поддержку виртуального хостинг-стиля и path-style. Общность модели и API упрощает перенос приложений с одного S3-совместимого сервиса на другой — логика работы с бакетами, объектами и ключами остаётся прежней.

Оставьте заявку, чтобы получить консультацию

Наши специалисты свяжутся с вами в ближайшее время и ответят на все вопросы.

section_subscribe_2x_9ab2d878a6_ac1afd4471.png

            Узнавайте о выходе новых статей в блоге первыми!

            Будем держать в курсе новостей и облачных трендов

            section-subscribe_2x.png
              section-subscribe_2x.png
              Ссылка скопирована
              Поделиться

              Почитать по теме

              _blog_head_1.png
              4 сентября

              Векторный поиск в PostgreSQL: pgvector для RAG-систем на корпоративных документах

              _blog_head_19.png
              4 сентября

              Визуально-лингвистические модели: как ИИ учится понимать изображения и текст одновременно

              _blog_head_10.png
              4 сентября

              Presigned URL в S3: как выдавать временный доступ к объекту без передачи ключей

              40+ готовых сервисов