#java #amazon-web-services #amazon-s3 #aws-lambda
#java #amazon-веб-сервисы #amazon-s3 #aws-lambda
Вопрос:
Чтобы получить все объекты из моей корзины S3 программно, я в настоящее время использую ListObjectsV2Request
первый. Затем я перебираю все полученные ключи и получаю отдельные объекты для каждого ключа с помощью a GetObjectRequest
.
Я испытываю проблемы с производительностью, которые приводят к тому, что мои объекты отображаются недостаточно быстро во внешнем интерфейсе.
Есть ли какой-либо другой лучший способ получить все объекты из корзины S3, возможно, только с одним запросом?
Комментарии:
1. К сожалению, нет, хуже, если у вас много объектов, которые вам нужно разбить на страницы.
2. Пожалуйста, добавьте сюда некоторые подробности: 1. Каким должен быть результат вашей программы (то, что вы отправляете во внешний интерфейс)? 2. Что вы называете проблемой производительности — высокая память или просто медленная обработка или что-то еще?
3. @scholl123 Пожалуйста, отредактируйте свой вопрос, чтобы добавить больше деталей. Что вы подразумеваете под «получить все объекты» — вы имеете в виду загрузку, или вы просто хотите «перечислить» их во внешнем интерфейсе? Сколько объектов находится в корзине? (Пожалуйста, отредактируйте свой вопрос с этими деталями, а не отвечайте в комментарии).
Ответ №1:
Вы можете попробовать использовать TransferManager
, возможно, это решит вашу проблему. https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-s3-transfermanager.html#tranfermanager-download-directory
Комментарии:
1. Но это означало бы, что мне нужно было бы куда-то поместить файлы, верно? Я просто хочу обработать содержимое в моей программе, аналогично S3AsyncClient. GetObject, где я могу использовать AsyncResponseTransformer. toBytes
Ответ №2:
Если ваша задача состоит в том, чтобы скопировать все файлы из одной корзины в другую, я бы посоветовал вам попробовать https://rclone.org /.
Комментарии:
1. Спасибо за ваш ответ, но моя задача — прочитать все объекты из корзины S3 и использовать данные в моем интерфейсе, поэтому нет, я не хочу хранить файлы где-то еще, я просто хочу использовать данные.