Listing just the sub folders in an s3 bucket

前端 未结 2 1928
忘了有多久
忘了有多久 2020-12-30 04:40

I have an s3 structure as follows:

s3bucketname -> List of first level keys -> List of second level keys -> List of third level keys -> Actual fi         


        
2条回答
  •  醉酒成梦
    2020-12-30 05:06

    Charles version is super concise! thanks @charles-menguy

    I wrote an extension to support huge list through pagination.

        public List getSubPathsInS3Prefix(String bucketName, String prefix) {
            if (!prefix.endsWith(FILE_DELIMITER)) {
                prefix += FILE_DELIMITER;
            }
            List paths = new ArrayList();
            ListObjectsRequest listObjectsRequest = new ListObjectsRequest()
                    .withBucketName(bucketName).withPrefix(prefix)
                    .withMaxKeys(1000).withDelimiter(FILE_DELIMITER);
            ObjectListing currentListing = s3Client.listObjects(listObjectsRequest);
            paths.addAll(currentListing.getCommonPrefixes());
    
            while (currentListing == null || currentListing.isTruncated()) {
                currentListing = s3Client.listNextBatchOfObjects(currentListing);
                paths.addAll(currentListing.getCommonPrefixes());
            }
            return paths;
        }
    

    http://www.lazywiz.com/uncategorized/s3-missing-api-list-sub-paths-in-the-s3-bucket/

提交回复
热议问题