- Я перебираю корзину S3, с большим количеством файлов и страниц.
- Каждый раз я получаю список объектов из своего ведра.
- Каждый из этих списков содержит объекты в формате nd json .gz.
- После этого я перебираю этот список объектов.
- После завершения он возвращается обратно к основному l oop (1), используя следующий токен из результата запроса.
- И так далее, пока других файлов не существует.
Мой wi sh - передать каждый из этих файлов njdon.gz в поток. Я не совсем понимаю:
- как использовать, пока l oop (для отправки каждый раз новый запрос в корзину s3)
- , а затем получить ответ обратно (с содержит следующий токен для следующих страниц и списка объектов)
- Перебираем список объектов и вводим каждый из файлов в поток
- И затем возвращаемся к l oop и делаем все до тех пор, пока токен не останется.
Извините за длинный текст, я понятия не имею, как это объяснить лучше. Заранее спасибо за любую помощь, я действительно отчаялся.
public Stream<GZIPInputStream> getMeasurements() throws IOException {
//S3 supports only an objects list only by the prefix.
ListObjectsV2Request request = new ListObjectsV2Request().withBucketName(bucketName).withPrefix("realtime-gzipped/");
ListObjectsV2Result result;
do {
// initialize result. Using a request
result = client.listObjectsV2(request);
// For each summery, out of S3ObjectSummary
for (S3ObjectSummary summary : result.getObjectSummaries()) {
// filter all objects by the suffix.
if (summary.getKey().endsWith(".ndjson.gz")) {
System.out.println(summary.getKey() + " : " + summary.getSize());
}
}
//Update the ListObjectsV2Request
String token = result.getNextContinuationToken();
request.setContinuationToken(token);
} while (result.isTruncated());
}