获取存储桶中每个 S3 对象的绝对路径

Kev*_*ith 3 java amazon-s3

给定AWSS3Client,如何获取所有 S3 对象路径的完整列表?

例子:

存储桶名称:foo有 5 个对象

  • foo/bip/baz
  • foo/bip/bap
  • 富人/酒吧/1
  • 富人/酒吧/2
  • 富/1234

我想得到一个List[String]由这 5 个项目组成的。

我怎样才能做到这一点?

DNA*_*DNA 6

为此,您可以调用

listObjects(bucketName).getObjectSummaries() 
Run Code Online (Sandbox Code Playgroud)

在对AmazonS3Client对象,然后叠代的对象摘要该名单,要求getKey()各一个。

(该listObjects()方法返回一个ObjectListing,然后该getObjectSummaries()方法返回一个List<S3ObjectSummary>- 并且每个都S3ObjectSummary包含键!)

如果有很多对象,您还必须处理ObjectListing被截断的情况,例如使用listNextBatchOfObjects(). 另请参阅ObjectListing.isTruncated()( javadoc )。

最后,只需添加bucketName+ "/"到每个键。