Вам не нужно создавать папку.
Папки на самом деле не существуют в Amazon S3. Вместо этого имя файла (Key
) объекта содержит полный путь, включая имя файла объекта.
Это означает, что вы можете скопировать такой файл, даже если папки не существуют:
aws s3 cp foo.txt s3://my-bucket/one/two/foo.txt
Чтобы все «выглядело» как обычная файловая система, консоль управления Amazon S3 покажет one
и two
в виде папок, но на самом деле их не существует. На самом деле, если вы запустите эту команду:
aws s3 rm s3://my-bucket/one/two/foo.txt
Это не только удалит объект, но и «папки» также исчезнут, поскольку они никогда не существовали.
Консоль управления также позволяет "создавать" папку, но на самом деле она просто создает объект нулевой длины с именем (включая полный путь) папки. Это позволяет «пустой папке» появляться в консоли (даже если она не существует).
Итак, если ваше приложение хочет связать «папку» с записью, ему просто нужно связать путь с записью . Необходимо создать папку. Затем создайте файлы с этим путем в качестве префикса, и они будут находиться в папке , но в действительности их имя файла (Key
) включает в себя как путь, так и имя файла.
Ваше приложение может вызвать S3 и запросить список объектов для данного префикса, и будут возвращены только объекты в этой «папке» (префикс).