Папки на самом деле не существуют в Amazon S3.Это система хранения плоских объектов.
Например, используя Интерфейс командной строки AWS (CLI) Я мог бы скопировать команду в корзину Amazon S3:
aws s3 cp foo.txt s3://my-bucket/folder1/folder2/foo.txt
Это прекрасно работает, хотя folder1
и folder2
не существует.Это связано с тем, что объекты хранятся с Key
(имя файла), которое включает полный путь к объекту .Таким образом, вышеупомянутый объект на самом деле имеет ключ (имя файла):
folder1/folder2/foo.txt
Однако, чтобы упростить жизнь людям, консоль управления Amazon S3 делает его видимым , как будто естьпапки.В S3 они называются Общими префиксами , а не папками.
Итак, когда вы делаете вызов API, чтобы вывести список содержимого при указании Prefix
, он просто говорит "Перечислите все объекты, ключ которых начинается с этой строки ".
В вашем списке нет папок, потому что они на самом деле не существуют.
Теперь, просто чтобы противоречить самому себе, на самом деле Можно создать папку (например, нажав Создать папку в консоли управления).Это на самом деле создает объект нулевой длины с тем же именем, что и папка .После этого папка появится в списках, поскольку на самом деле она содержит объект нулевой длины, а не папку.
Вероятно, поэтому в вашем списке появляется Item1/Item2/
, а Item1/Item2/Item3
- нет.Кто-то на каком-то этапе должен был «создать папку» с именем Item1/Item2/
, которая фактически создала объект нулевой длины с этим ключом.