diff --git a/src/main/java/com/capstone/favicon/config/S3Config.java b/src/main/java/com/capstone/favicon/config/S3Config.java index aa14057..0e79434 100644 --- a/src/main/java/com/capstone/favicon/config/S3Config.java +++ b/src/main/java/com/capstone/favicon/config/S3Config.java @@ -16,6 +16,7 @@ import java.nio.charset.StandardCharsets; import java.time.LocalDate; import java.time.ZoneId; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -92,7 +93,7 @@ public void moveFile(String fromKey, String toKey) { s3Client.deleteObject(deleteRequest); } - public List listFilesInBucket() { + /*public List listFilesInBucket() { ListObjectsV2Request listObjectsV2Request = ListObjectsV2Request.builder() .bucket(bucketName) .build(); @@ -102,8 +103,35 @@ public List listFilesInBucket() { return response.contents().stream() .map(object -> object.key()) .collect(Collectors.toList()); + }*/ + public List listFilesInBucket() { + List allKeys = new ArrayList<>(); + String continuationToken = null; + + do { + ListObjectsV2Request.Builder requestBuilder = ListObjectsV2Request.builder() + .bucket(bucketName) + .maxKeys(1000); + + if (continuationToken != null) { + requestBuilder.continuationToken(continuationToken); + } + + ListObjectsV2Response response = s3Client.listObjectsV2(requestBuilder.build()); + + List keys = response.contents().stream() + .map(S3Object::key) + .collect(Collectors.toList()); + + allKeys.addAll(keys); + + continuationToken = response.nextContinuationToken(); + } while (continuationToken != null); + + return allKeys; } + /** * key에서 fileUrl 추출 * @param fileUrl