我知道有一个doesObjectExist
方法来检查指定存储桶中是否存在对象,但是如何检查S3存储桶中是否存在具有特定版本的对象?
我想致电doesObjectExist(bucketName, objectName, s3Version)
。
我有什么方法可以做到这一点,或者我是否需要先调用listVersions
并使用VersionListing
检查版本是否存在?这种方法似乎更冗长。
答案 0 :(得分:1)
目前的API中没有一步检查。您可以尝试使用类似
的内容s3Client.getObjectMetadata(
new GetObjectMetadataRequest(bucketName, key, versionId)
)
然而,我没有看到任何可靠的方法来知道这个物体何时不存在(因为没有特殊的物体不存在""这种情况的例外)。因此,在失败后,您应该检查此对象是否与doesObjectExist
一起存在。或者另一种方式:检查它是否存在,然后用版本查询元数据,如果它存在但元数据请求失败,则该对象的版本不存在。