如何在Amazon S3 Bucket中重命名文件?

Vig*_*nan 11 java amazon amazon-s3 amazon-web-services

我想在S3 Bucket中重命名一个文件.这是一段代码片段

    S3Object s3Obj  = getS3Client().getObject(new GetObjectRequest(getBucketName(), fileName));  
//Error in Above Line itself            
    getS3Client().putObject(getBucketName(), newFileName, s3Obj.getObjectContent(), s3Obj.getObjectMetadata());

private AmazonS3 getS3Client(){
        AWSCredentials myCredentials = new BasicAWSCredentials(AccessKey,SecretKey);
        AmazonS3 s3client = new AmazonS3Client(myCredentials);
        return s3client;
}
Run Code Online (Sandbox Code Playgroud)

所以,我收到这个错误,

DEBUG [main] request.handleErrorResponse(748)| 收到错误响应:com.amazonaws.services.s3.model.AmazonS3Exception:状态代码:403,AWS服务:null,AWS请求ID:AD2F31F1133A650E,AWS错误代码:AccessDenied.

我无法获得s3object本身.任何建议或想法我将如何获得S3对象并重命名它.在预期中感谢您的帮助.

H6.*_*H6. 23

无法直接重命名S3对象

通过复制对象并删除原始对象来重命名对象

您可以使用例如复制和删除

CopyObjectRequest copyObjRequest = new CopyObjectRequest(bucketName, 
           keyName, bucketName, destinationKeyName);
s3client.copyObject(copyObjRequest);
s3client.deleteObject(new DeleteObjectRequest(bucketName, keyName));
Run Code Online (Sandbox Code Playgroud)