【问题标题】:AWS Java SDK: check if an object exists with a specific version in an S3 bucketAWS Java SDK:检查 S3 存储桶中是否存在具有特定版本的对象
【发布时间】:2018-03-18 13:39:56
【问题描述】:

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

我想打电话给doesObjectExist(bucketName, objectName, s3Version)

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

【问题讨论】:

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


    【解决方案1】:

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

    s3Client.getObjectMetadata(
      new GetObjectMetadataRequest(bucketName, key, versionId)
    )
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-27
      • 1970-01-01
      • 2019-11-10
      • 2020-11-06
      • 1970-01-01
      • 2021-06-01
      • 2017-08-03
      • 1970-01-01
      相关资源
      最近更新 更多