2017-10-06 83 views
0

我知道有一個doesObjectExist方法檢查指定存儲桶中是否存在對象,但是如何檢查具有特定存儲的對象版本存在於S3存儲桶中?我想打doesObjectExist(bucketName, objectName, s3Version)AWS Java SDK:檢查S3存儲桶中是否存在具有特定版本的對象

有沒有什麼辦法可以做到這一點,或者我需要先撥打listVersions,並使用VersionListing來檢查版本是否存在?這種方法似乎更加冗長。

回答

1

當前API沒有一步檢查。你可以嘗試使用類似

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

但是當時我沒有看到任何可靠的方式來知道什麼時候這樣的對象不存在(因爲沒有一個特殊的「對象不存在」例外這種情況下) 。所以在失敗之後,你應該檢查這個對象是否存在doesObjectExist。或者另一種方式:檢查它是否存在,然後使用版本查詢元數據,如果存在但元數據請求失敗,則該版本的對象不存在。

相關問題