Есть ли способ проверить, существует ли папка в s3, используя aws cli? - PullRequest
0 голосов
/ 10 июля 2019

Допустим, у меня есть корзина с именем Test, в которой есть папка Alpha / TestingOne, Alpha / TestingTwo.Я хочу проверить, есть ли папка с именем Alpha / TestingThree в моем буфере, используя aws cli.Я попробовал aws

s3api head-object --bucket Test --key Alpha/TestingThree

Но кажется, что головной объект предназначен для файлов, а не для папок.Так есть ли способ проверить, существует ли папка в aws s3, используя aws cli api.

Ответы [ 2 ]

1 голос
/ 10 июля 2019

Использование aws cli,

aws s3 ls s3://Test/Alpha/TestingThree

Если он существует, он показывает, как показано ниже, иначе ничего не возвращается.

                           PRE TestingThree

Обратите внимание, что S3 является плоской структурой (на самом деле никакой иерархии, как у каталога). https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-folders.html

0 голосов
/ 10 июля 2019

Папки на самом деле не существуют в Amazon S3. Например, вы можете использовать эту команду:

aws s3 cp foo.txt s3://my-bucket/folder1/folder2/foo.txt

Это будет работать успешно, даже если folder1 и folder2 не существуют. Это связано с тем, что имя файла (Key) объекта Amazon S3 содержит полный путь. Amazon S3 - это плоская система хранения, которая не использует папки. Однако, чтобы упростить задачу для людей, консоль управления S3 «отображает» ее, как будто есть папки, и можно перечислять объекты, которые имеют CommonPrefix (что похоже на путь).

Если в консоли управления S3 создается новая папка, она фактически создает объект нулевой длины с тем же именем, что и папка. Это позволяет отображать «пустые папки», даже если они на самом деле не существуют.

...