From cffbbf24837380aa37ee417116b7a2dafbffc409 Mon Sep 17 00:00:00 2001 From: sungwoo8763 Date: Mon, 2 Jun 2025 20:37:41 +0900 Subject: [PATCH] =?UTF-8?q?s3=20=ED=8C=8C=EC=8B=B1=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/capstone/favicon/config/S3Config.java | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) 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