Папки на самом деле не существуют в Amazon S3. Например, вы можете использовать эту команду Интерфейс командной строки AWS (CLI) для создания объекта в несуществующей папке:
aws s3 cp foo.txt s3://my-bucket/unicorn/soup/foo.txt
Это приведет к магическому появлению каталогов unicorn
и soup
, поскольку они на самом деле не существуют. Если этот объект был удален, эти каталоги также исчезнут (потому что они не существуют!).
Amazon S3 - система хранения плоских объектов. Путь к объекту фактически хранится в Key
(имя файла) объекта. Некоторые вызовы API помогают утверждать, что каталоги существуют, но на самом деле их не существует.
Иногда возникает желание «создать» каталог, например, через консоль управления. Это делается путем создания объекта нулевой длины с именем каталога . Это не «создает» каталог, оно просто заставляет его появляться как общий префикс в определенных вызовах API.
Кроме того, поскольку каталоги не существуют, невозможно установить списки ACL для каталогов . Вы не можете контролировать, может ли кто-либо создавать объект в каталоге, устанавливая разрешения для каталога (потому что, да!, Каталоги не существуют).
Если вы хотите предоставить любому разрешение на запись в папку, вы можете использовать Bucket Policy , который предоставляет доступ с использованием определенного префикса . Если вы хотите предоставить доступ конкретным пользователям IAM, вы можете прикрепить политику к пользователю IAM.