获取Bucket中每个S3对象的绝对路径



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

示例:

Bucket名称:foo有5个对象

  • foo/bip/baz
  • foo/bip/bap
  • foo/bar/1
  • foo/bar/2
  • foo/1234

我想要一份由这5项组成的List[String]

我该怎么做?

要做到这一点,您可以调用

listObjects(bucketName).getObjectSummaries() 

AmazonS3Client对象上,然后迭代该对象摘要列表,对每个摘要调用getKey()

listObjects()方法返回一个ObjectListing,而getObjectSummaries()方法又返回一个List<S3ObjectSummary>-并且每个S3ObjectSummary都包含密钥!)

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

最后,只需为每个键预先添加bucketName+ "/"即可。

最新更新