изменить класс хранилища на объекте AWS S3 через Java SDK - PullRequest
0 голосов
/ 22 мая 2018

Я новичок в AWS, мне нужно установить класс хранения для существующего объекта в корзине s3. Можно найти способ сделать это с помощью Java SDK

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

нет необходимости использовать устаревший метод в любом случае.в моем случае необходимо обновить существующий объект:

   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);
0 голосов
/ 22 мая 2018

Это выглядит довольно просто с 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 устарел.

...