Amazon S3 API: список и получение содержимого папки - PullRequest
0 голосов
/ 19 января 2019

Я знаю, и я использовал метод s3Client.listObjects (req) с ListObjectsRequest.Работает отлично.Вы создаете объект:

ListObjectsRequest ()
    .withBucketName (bucket)
    .withPrefix (folderPath)
    .withDelimiter (DELIMITER)

Это в некоторых случаях, когда вы имитировали структуру папок, очень полезно ПОЛУЧИТЬ РЕЗЮМЕ.

Есть некоторый способиспользуйте ту же логику префиксов и разделителей , чтобы получить полные объекты вместо сводки Это может быть полезно, если вы хотите получить несколько ограниченных объектов.

Альтернативой является запуск списка и«n» получает, но я хочу знать, есть ли способ запустить один вызов (один http-вызов),

что-то вроде:

GetObjectsRequest ()
           .withBucketName (bucket)
           .withPrefix (folderPath)
           .withDelimiter (DELIMITER)

и что он возвращаетзавершенные объекты ... (или листированный список )

1 Ответ

0 голосов
/ 19 января 2019

В базовом S3 API возможности для этого нет.Объекты должны выбираться индивидуально.Единственное, что приходит в голову, это действие, которое воздействует на несколько объектов в контексте одного действия API, это удаление нескольких объектов .

Любое заданное ведро S3 может, конечно, обрабатыватьочень большое количество одновременных GET запросов, поэтому вы можете получить все объекты за короткий промежуток времени, если воспользуетесь любыми асинхронными и / или многопоточными возможностями, предлагаемыми вашим языком выбора.

Еслитела объектов очень малы, вы также можете инкапсулировать это в функцию Lambda, которая выполнит всю работу и упакует все, поддерживая ваш код вызова более аккуратным.Но у лямбда-функций есть предел полезной нагрузки в 6 МБ для запроса и ответа ... поэтому объекты должны быть небольшими, чтобы этот подход работал.

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