From df2938534351c1ef9b626564ee978e1178c4f819 Mon Sep 17 00:00:00 2001 From: Afly Date: Tue, 10 Jan 2023 14:19:25 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-88094=20fix:=20=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E8=BE=83=E5=A4=9A=E6=97=B6=EF=BC=8ClistEntry?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E4=B8=8D=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fs/s3/repository/core/S3ResourceRepository.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/fanruan/fs/s3/repository/core/S3ResourceRepository.java b/src/main/java/com/fanruan/fs/s3/repository/core/S3ResourceRepository.java index ae4833a..66f907e 100644 --- a/src/main/java/com/fanruan/fs/s3/repository/core/S3ResourceRepository.java +++ b/src/main/java/com/fanruan/fs/s3/repository/core/S3ResourceRepository.java @@ -87,6 +87,15 @@ public class S3ResourceRepository extends BaseResourceRepository { ListObjectsRequest listObjectsRequest = new ListObjectsRequest().withBucketName(bucket) .withPrefix(dir).withDelimiter(DELIMITER); ObjectListing objectListing = s3.listObjects(listObjectsRequest); + collectFileEntry(result, objectListing); + while (objectListing.isTruncated()) { + objectListing = s3.listNextBatchOfObjects(objectListing); + collectFileEntry(result, objectListing); + } + return result.toArray(new FineFileEntry[0]); + } + + private void collectFileEntry(List result, ObjectListing objectListing) { for (S3ObjectSummary summary : objectListing.getObjectSummaries()) { String key = summary.getKey(); if (!key.endsWith(DELIMITER)) { @@ -98,8 +107,6 @@ public class S3ResourceRepository extends BaseResourceRepository { entry.setDirectory(true); result.add(entry); } - - return result.toArray(new FineFileEntry[0]); } @Override