Как я могу получить только один уровень объектов в корзине S3? - PullRequest
7 голосов
/ 28 марта 2011

Я хочу перечислить только те объекты в корзине, которые сами не являются корзинами.Есть ли способ сделать это, если не проанализировать результаты ListBucket?

1 Ответ

16 голосов
/ 31 марта 2011

объекты в корзине, которые сами не являются корзинами

В корзинах не может быть других корзин.Вы имеете в виду папки?S3 также не имеет понятия о папках.

Вы можете иметь 100 корзин на одну учетную запись S3, и каждая корзина может содержать неограниченное количество объектов / файлов.Если вы называете свои файлы с / в имени файла, инструменты AWS GUI (например, Консоль AWS, BucketExplorer и т. Д.) Будут интерпретировать каждый раздел как виртуальную папку.Например,

Файл с именем folder1/folder2/myfile.jpg будет сохранен в S3 как «плоский» файл с таким именем, но в инструментах с графическим интерфейсом он будет выглядеть так, как если бы файл с именем myfile.jpg находился на 2 подпапки вниз в folder1/folder2.

Вы можете использовать параметры prefix и delimiter для анализа результатов вызова GET Bucket (List Objects) .Те же параметры доступны и в любом из SDK.

ОБНОВЛЕНИЕ для ответа на комментарий.

Предполагается, что наш контейнер S3 выглядит следующим образом:

mybucket
   folder1
      file1.txt
      file2.txt
      folder2
          file3.txt
          file4.txt
      folder3
          file5.txt
          file6.txt

Использование prefix = "folder1/" вернет все 6 файлов: от file1.txt до file6.txt.

Использование prefix = "folder1/" и delimiter = "/" вернул бы 2 файла:

    file1.txt
    file2.txt

И набор ответов CommonPrefixes с

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