diff --git a/aws-java-sdk-s3/src/main/java/com/amazonaws/services/s3/iterable/S3Objects.java b/aws-java-sdk-s3/src/main/java/com/amazonaws/services/s3/iterable/S3Objects.java index 2bd81941b087..64b960434e87 100644 --- a/aws-java-sdk-s3/src/main/java/com/amazonaws/services/s3/iterable/S3Objects.java +++ b/aws-java-sdk-s3/src/main/java/com/amazonaws/services/s3/iterable/S3Objects.java @@ -14,13 +14,13 @@ */ package com.amazonaws.services.s3.iterable; -import java.util.Iterator; - import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.model.ListObjectsRequest; import com.amazonaws.services.s3.model.ObjectListing; import com.amazonaws.services.s3.model.S3ObjectSummary; +import java.util.Iterator; + /** * Provides an easy way to iterate Amazon S3 objects in a "foreach" statement. * For example: @@ -39,6 +39,7 @@ public class S3Objects implements Iterable { private AmazonS3 s3; private String prefix = null; + private String delimiter = null; private String bucketName; private Integer batchSize = null; @@ -91,6 +92,17 @@ public S3Objects withBatchSize(int batchSize) { return this; } + /** + * Sets the delimiter. + * + * @param delimiter + * The delimiter. + */ + public S3Objects withDelimiter(String delimiter) { + this.delimiter = delimiter; + return this; + } + public Integer getBatchSize() { return batchSize; } @@ -99,6 +111,10 @@ public String getPrefix() { return prefix; } + public String getDelimiter() { + return delimiter; + } + public String getBucketName() { return bucketName; } @@ -137,6 +153,7 @@ private void prepareCurrentListing() { ListObjectsRequest req = new ListObjectsRequest(); req.setBucketName(getBucketName()); req.setPrefix(getPrefix()); + req.setDelimiter(getDelimiter()); req.setMaxKeys(getBatchSize()); currentListing = getS3().listObjects(req); } else {