AWS S3 Java SDK-ListVersionsRequest仅获取最新版本

时间:2018-12-12 18:13:04

标签: java amazon-s3 aws-java-sdk

是否有任何方法可以指定在ListVersionsRequest中仅包含每个对象的最新版本?我需要版本值,所以简单的AmazonS3Client.listObjects(...)不够用,因为S3ObjectSummary没有版本信息。

我正在创建一个实用程序,可对版本化存储桶中的所有对象执行ping S3操作,并将最新版本值与该实用程序已在跟踪的内容进行比较。我现在唯一能想到的解决方案是执行AmazonS3Client.listVersions(...),循环访问S3VersionSummary列表,处理第一个最新版本,然后手动迭代并跳过对象的所有较旧版本,直到到达新密钥。这是最好的解决方案吗?

谢谢

3 个答案:

答案 0 :(得分:0)

在ListVersionsRequest的链接中指定的listVersions返回表明...

和版本是从最新到最新的。

因此,要求提供特定s3键的版本,列表中的第一个结果是最新版本。

答案 1 :(得分:0)

我只看到两个选项:

  1. 执行您描述的操作并列出您拥有的数据的所有版本。之后,您将获得按版本排序的列表,因此您需要知道何时停止检查版本。我认为,可以通过遍历版本列表并停止返回错误ref

  2. 的第一个islatest()调用来完成此操作
  3. 您可以列出对象,然后为每个包含版本ID的对象获取对象摘要。

答案 2 :(得分:0)

处理第一个最新版本,然后手动迭代并跳过对象的所有旧版本,直到获得新密钥为止

您可以简单地使用isLatest()中的S3VersionSummary