curena
4/15/2016 - 4:28 PM

AWS S3 delete all objects from a version bucket

AWS S3 delete all objects from a version bucket

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);
}