我是AWS的新手,我需要为s3存储桶中的现有对象设置存储类..可以找到使用java SDK执行此操作的方法
答案 0 :(得分:2)
在任何情况下都不需要使用弃用的方法。 在我的情况下需要更新现有对象:
AmazonS3Client s3Client = (AmazonS3Client)AmazonS3ClientBuilder.standard()
.withRegion(clientRegion)
.withCredentials(new ProfileCredentialsProvider())
.build();
CopyObjectRequest copyRequest = new CopyObjectRequest(sourceBucketName, sourceKey, destinationBucketName, destinationKey)
.withStorageClass(StorageClass.ReducedRedundancy);
s3Client.copyObject(copyRequest);
答案 1 :(得分:0)
使用changeObjectStorageClass看起来非常简单:
AmazonS3Client s3Client = (AmazonS3Client)AmazonS3ClientBuilder.standard()
.withRegion(clientRegion)
.withCredentials(new ProfileCredentialsProvider())
.build();
PutObjectRequest request = new PutObjectRequest(bucketName,
fileObjKeyName, new File(fileName));
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType("binary/octet-stream");
request.setMetadata(metadata);
s3Client.putObject(request);
s3Client.changeObjectStorageClass(bucketName, fileObjKeyName,
StorageClass.ReducedRedundancy );
唯一奇怪的是,您需要在changeObjectStorageClass
的实例上使用AmazonS3Client
- 不推荐使用接口AmazonS3
上的版本。