java AWS S3从版本存储桶中删除所有对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java AWS S3从版本存储桶中删除所有对象相关的知识,希望对你有一定的参考价值。

AmazonS3 s3client = new AmazonS3Client(new BasicAWSCredentials("",
		""));
s3client.setRegion(Region.getRegion(Regions.US_WEST_2));

ObjectListing objectListing = s3client.listObjects(BUCKET);

while (true) {
	for (Iterator<?> iterator = objectListing.getObjectSummaries().iterator(); iterator.hasNext();) {
		S3ObjectSummary objectSummary = (S3ObjectSummary) iterator.next();
		s3client.deleteObject(BUCKET, objectSummary.getKey());
	}

	if (objectListing.isTruncated()) {
		objectListing = s3client.listNextBatchOfObjects(objectListing);
	} else {
		break;
	}
}

VersionListing list = s3client.listVersions(new ListVersionsRequest().withBucketName(BUCKET).withPrefix("post-transform/20000/2016-04-12/account-customer-rel"));
while (list.isTruncated()) {
	for (Iterator<?> iterator = list.getVersionSummaries().iterator(); iterator.hasNext(); ) {
		S3VersionSummary s = (S3VersionSummary) iterator.next();
		s3client.deleteVersion(BUCKET, s.getKey(), s.getVersionId());
	}
	list = s3client.listNextBatchOfVersions(list);
}

以上是关于java AWS S3从版本存储桶中删除所有对象的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Java 列出存储桶中的所有 AWS S3 对象

如何使用scala和aws-java-sdk从S3存储桶中获取所有S3ObjectSummary?

AWS S3生命周期配置

默认情况下,如何将 AWS S3 存储桶中的所有对象设为公开?

如何删除/计算 s3 存储桶中的对象?

AWS 云形成 |配置 Lambda 以使用 S3 存储桶中的最新版本代码