AWS Java SDK:检查S3存储桶中是否存在具有特定版本的对象

时间:2017-10-06 17:25:21

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

我知道有一个doesObjectExist方法来检查指定存储桶中是否存在对象,但是如何检查S3存储桶中是否存在具有特定版本的对象

我想致电doesObjectExist(bucketName, objectName, s3Version)

我有什么方法可以做到这一点,或者我是否需要先调用listVersions并使用VersionListing检查版本是否存在?这种方法似乎更冗长。

1 个答案:

答案 0 :(得分:1)

目前的API中没有一步检查。您可以尝试使用类似

的内容
s3Client.getObjectMetadata(
  new GetObjectMetadataRequest(bucketName, key, versionId)
)

然而,我没有看到任何可靠的方法来知道这个物体何时不存在(因为没有特殊的物体不存在""这种情况的例外)。因此,在失败后,您应该检查此对象是否与doesObjectExist一起存在。或者另一种方式:检查它是否存在,然后用版本查询元数据,如果它存在但元数据请求失败,则该对象的版本不存在。