Почему не печатается имя файла?Это потому, что - это имя файла.
Amazon S3 - это служба хранения плоских объектов .Он не поддерживает папки / каталоги.
Однако он допускает /
символов в ключах («имена файлов»).Существуют также различные вызовы, которые могут обрабатывать символы /
как разделители для перечисления «подкаталогов» (которые на самом деле не существуют).
Например, вы можете сделать это с помощью Интерфейс командной строки AWS (CLI) :
aws s3 mb my-bucket
aws s3 cp foo s3://my-bucket/folder1/folder2/foo
Когда вы перейдете к списку сегментов, он будет действовать , как если бы folder1 и папка2 существует.Похоже, что папки были созданы, но это не так.Они просто предназначены для работы как традиционные иерархические каталоги.
Затем можно выполнить эту команду:
aws s3 rm s3://my-bucket/folder1/folder2/foo
Файл foo
будет удален , а папки тоже исчезнут! Это потому, что они никогда не существовали.
Следовательно, ответ на ваш вопрос: Ключ (имя файла) - это полный путь к объекту, потому что пути на самом деле не существуют,Это просто имя.
Если вы хотите «избежать» этого, вам нужно будет манипулировать строками.Это может быть сделано довольно легко в Python, например:
print(obj['Key'].rsplit('/', 1)[-1])