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

时间:2015-03-05 19:43:57

标签: java amazon-s3

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

示例:

Bucket Name: foo 有5个对象

  • foo / bip / baz
  • 富/ BIP / BAP
  • 富/酒吧/ 1
  • 富/酒吧/ 2
  • 富/ 1234

我希望获得由这5个项目组成的List[String]

我该怎么做?

1 个答案:

答案 0 :(得分:3)

为此,您可以致电

listObjects(bucketName).getObjectSummaries() 

AmazonS3Client对象上,然后遍历该对象摘要列表,在每个对象摘要上调用getKey()

listObjects()方法返回ObjectListing,然后getObjectSummaries()方法返回List<S3ObjectSummary> - 每个S3ObjectSummary都包含密钥!)< / p>

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

最后,只需在每个密钥前加bucketName+ "/"