В S3 нет настоящих папок: есть только объекты с ключами (именами) в одном плоском пространстве имён. «Папки» в консоли — это всего лишь визуализация префиксов ключей, обычно разделённых символом /. Оперируя «папкой», мы на самом деле работаем с набором объектов, чьи ключи начинаются с одного и того же префикса.
S3 — это объектное хранилище с плоским пространством имён внутри каждого бакета. Каждый объект имеет уникальный ключ, например photos/2024/01/cat.jpg, и для самого S3 это просто одна длинная строка без встроенной иерархии каталогов, как в классической файловой системе.
То, что в консоли выглядит как древовидная структура «папок», — всего лишь группировка объектов по префиксам до символа /. В API нет сущности «каталог»: есть бакеты и объекты с ключами. Поэтому любая логическая иерархия строится за счёт соглашения об именовании ключей и использовании префиксов.
Основные последствия этого поведения при работе с «папками» такие:
photos/, который играет роль маркера, чтобы пустая «папка» была видна в интерфейсе.photos/2024/....Prefix, фильтруя объекты по началу ключа.Практически это означает, что понятие «пустая папка» в S3 формально отсутствует: либо нет ни одного объекта с данным префиксом, либо существует специальный пустой объект-маркер. Поэтому при проектировании структуры данных в S3 важно мыслить ключами и префиксами, а не директориями и поддиректориями файловой системы.
Отметьте свой прогресс