Как создать новую папку в s3 из браузера - PullRequest
0 голосов
/ 30 июня 2019

В основном у меня есть система PHP crud. Когда я добавляю новую запись php, я также хотел бы сделать публикацию API в корзину, чтобы создать новую папку и каким-то образом связать эту новую папку с этой записью. Таким образом, когда я ищу эту запись, я могу затем перечислить объекты для этой записи из этой конкретной папки. Как мне создать эту папку?

1 Ответ

2 голосов
/ 30 июня 2019

Вам не нужно создавать папку.

Папки на самом деле не существуют в 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 и запросить список объектов для данного префикса, и будут возвращены только объекты в этой «папке» (префикс).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...