要获取AWS S3存储桶中的仅最新版本,可以使用AWS Java SDK中的ListVersionsRequest
类来列出版本,并根据需要过滤出最新版本。
以下是使用Java SDK的代码示例:
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.ListVersionsRequest;
import com.amazonaws.services.s3.model.S3ObjectSummary;
import com.amazonaws.services.s3.model.VersionListing;
public class S3ListVersionsExample {
public static void main(String[] args) {
String bucketName = "your-bucket-name";
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().build();
ListVersionsRequest listVersionsRequest = new ListVersionsRequest()
.withBucketName(bucketName)
.withMaxResults(10); // 设置最大结果数,根据需求调整
VersionListing versionListing;
do {
versionListing = s3Client.listVersions(listVersionsRequest);
for (S3ObjectSummary objectSummary : versionListing.getVersionSummaries()) {
if (!objectSummary.isDeleteMarker()) { // 过滤掉删除标记
// 可以根据需求进一步过滤出最新版本
System.out.println("Key: " + objectSummary.getKey());
System.out.println("Version ID: " + objectSummary.getVersionId());
System.out.println("Is Latest Version: " + objectSummary.isLatest());
System.out.println("----------");
}
}
listVersionsRequest.setKeyMarker(versionListing.getNextKeyMarker());
listVersionsRequest.setVersionIdMarker(versionListing.getNextVersionIdMarker());
} while (versionListing.isTruncated());
}
}
上面的代码示例列出了存储桶中的版本,并打印了每个版本的键,版本ID和是否为最新版本。您可以根据自己的需求进一步过滤出最新版本。请将your-bucket-name
替换为您的存储桶名称,并根据需要调整withMaxResults
设置。