簡體   English   中英

如何使用Java在版本化存儲桶中列出AWS S3對象和版本

[英]How to list AWS S3 objects and versions in a versioned bucket using Java

我想檢索一個版本化存儲桶中所有對象的列表,以及它們在列表中的版本,類似於AWS S3 Console的工作方式:

AWS S3控制台

我可以使用 SO問題的建議列出非版本化存儲桶中的對象。 但是,由於S3ObjectSummary包含版本控制信息,因此如何將它們與版本ID一起列出還不是很清楚。 單獨調用版本控制方法,然后嘗試將它們與S3ObjectSummary包含的信息放在一起似乎很麻煩。

這似乎是到目前為止我能找到的最接近的答案:

http://docs.aws.amazon.com/AmazonS3/latest/dev/list-obj-version-enabled-bucket.html

相關代碼段在這里:

    ListVersionsRequest request = new ListVersionsRequest()
        .withBucketName(bucketName)
        .withMaxResults(2);
        // you can specify .withPrefix to obtain version list for a specific object or objects with 
        // the specified key prefix.

    VersionListing versionListing;            
    do {
        versionListing = s3client.listVersions(request);
        for (S3VersionSummary objectSummary : 
            versionListing.getVersionSummaries()) {
            System.out.println(" - " + objectSummary.getKey() + "  " +
                    "(size = " + objectSummary.getSize() + ")" +
                    "(versionID= " + objectSummary.getVersionId() + ")");

        }
        request.setKeyMarker(versionListing.getNextKeyMarker());
        request.setVersionIdMarker(versionListing.getNextVersionIdMarker());
    } while (versionListing.isTruncated());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM