S3 Multipart Upload with SSE-KMS

故事扮演 提交于 2019-12-03 23:03:58

问题


I am trying to write a utility using aws-java-sdk (1.11.230). I am able to write a file with SSE-KMS by using PutObjectRequest as follow:

PutObjectRequest putRequest = new PutObjectRequest(existingBucketName, keyName, file)
                        .withSSEAwsKeyManagementParams(kmsKeyId);

but while trying to upload it in multipart, I could not find any way to specify encryption configuration for SSE-KMS.

Could anyone please suggest a way to go through this successfully. Any suggestion will be appreciated.

Vikash Pareek


回答1:


Finally, I am able to find the solution for this. It can be done by setting headers to InitiateMultipartUploadRequest object as follow:

InitiateMultipartUploadRequest initRequest = new
                InitiateMultipartUploadRequest(bucketName, keyName);
        initRequest.putCustomRequestHeader("x-amz-server-side-encryption", "aws:kms");
        initRequest.putCustomRequestHeader("x-amz-server-side-encryption-aws-kms-key-id", kmsKey);



回答2:


Can also be done like this:

InitiateMultipartUploadRequest initRequest = new InitiateMultipartUploadRequest("example-bucket", "textfile.txt");      SSEAwsKeyManagementParams kms = new SSEAwsKeyManagementParams("KMS-key-alias");
initRequest.setSSEAwsKeyManagementParams(kms);
initResponse = s3Client.initiateMultipartUpload(initRequest);


来源:https://stackoverflow.com/questions/47328843/s3-multipart-upload-with-sse-kms

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!