Compare commits

..

No commits in common. "e3ba04a087188f9a9b2dbe36cd769ac618fbd4ac" and "b237baa05190f4a0a14230b2f056aed10be6ebb5" have entirely different histories.

View File

@ -45,47 +45,16 @@ public class S3Service {
throw new IllegalArgumentException("Object key list cannot be null or empty");
}
final int BATCH_SIZE = 500;
List<ObjectIdentifier> allObjects =
var objectsToDelete =
objectKeys.stream().map(key -> ObjectIdentifier.builder().key(key).build()).toList();
for (int i = 0; i < allObjects.size(); i += BATCH_SIZE) {
int end = Math.min(i + BATCH_SIZE, allObjects.size());
List<ObjectIdentifier> batch = allObjects.subList(i, end);
var deleteRequest =
DeleteObjectsRequest.builder()
.bucket(bucket)
.delete(Delete.builder().objects(objectsToDelete).build())
.build();
DeleteObjectsRequest deleteRequest =
DeleteObjectsRequest.builder()
.bucket(bucket)
.delete(Delete.builder().objects(batch).build())
.build();
try {
var response = s3Client.deleteObjects(deleteRequest);
if (!response.errors().isEmpty()) {
response
.errors()
.forEach(
error ->
System.err.println(
"Error deleting key: " + error.key() + " -> " + error.message()));
} else {
System.out.println(
"Deleted "
+ batch.size()
+ " objects successfully (batch "
+ (i / BATCH_SIZE + 1)
+ ")");
}
} catch (S3Exception e) {
System.err.println(
"Failed to delete batch starting at index "
+ i
+ ": "
+ e.awsErrorDetails().errorMessage());
}
}
s3Client.deleteObjects(deleteRequest);
}
public List<String> listAllObjectKeys() {