我正在尝试使用aws-java-sdk(1.11.230)编写实用程序。 我可以使用PutObjectRequest编写一个带SSE-KMS的文件,如下所示:
PutObjectRequest putRequest = new PutObjectRequest(existingBucketName, keyName, file)
.withSSEAwsKeyManagementParams(kmsKeyId);
但是在尝试以多部分上传时,我找不到任何方法来为SSE-KMS指定加密配置。
有人可以建议一种方法来成功完成这项工作。 任何建议将不胜感激。
Vikash Pareek
答案 0 :(得分:0)
最后,我能够找到解决方案。可以通过将标题设置为 InitiateMultipartUploadRequest 对象来完成,如下所示:
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);
答案 1 :(得分:0)
也可以这样:
InitiateMultipartUploadRequest initRequest = new InitiateMultipartUploadRequest("example-bucket", "textfile.txt"); SSEAwsKeyManagementParams kms = new SSEAwsKeyManagementParams("KMS-key-alias");
initRequest.setSSEAwsKeyManagementParams(kms);
initResponse = s3Client.initiateMultipartUpload(initRequest);