Class S3Objects

  • All Implemented Interfaces:
    Iterable<S3ObjectSummary>

    public class S3Objects
    extends Object
    implements Iterable<S3ObjectSummary>
    Provides an easy way to iterate Amazon S3 objects in a "foreach" statement. For example:
     for ( S3ObjectSummary summary : S3Objects.withPrefix(s3, "my-bucket", "photos/") ) {
         System.out.printf("Object with key '%s'\n", summary.getKey());
     }
     

    The list of S3ObjectSummarys will be fetched lazily, a page at a time, as they are needed. The size of the page can be controlled with the withBatchSize(int) method.

    • Method Detail

      • inBucket

        public static S3Objects inBucket​(AmazonS3 s3,
                                         String bucketName)
        Constructs an iterable that covers all the objects in an Amazon S3 bucket.
        Parameters:
        s3 - The Amazon S3 client.
        bucketName - The bucket name.
        Returns:
        An iterator for object summaries.
      • withPrefix

        public static S3Objects withPrefix​(AmazonS3 s3,
                                           String bucketName,
                                           String prefix)
        Constructs an iterable that covers the objects in an Amazon S3 bucket where the key begins with the given prefix.
        Parameters:
        s3 - The Amazon S3 client.
        bucketName - The bucket name.
        prefix - The prefix.
        Returns:
        An iterator for object summaries.
      • withBatchSize

        public S3Objects withBatchSize​(int batchSize)
        Sets the batch size, i.e., how many S3ObjectSummarys will be fetched at once.
        Parameters:
        batchSize - How many object summaries to fetch at once.
      • getBatchSize

        public Integer getBatchSize()
      • getPrefix

        public String getPrefix()
      • getBucketName

        public String getBucketName()