Многокомпонентная загрузка S3 с помощью SSE-KMS

Я пытаюсь написать утилиту с использованием aws-java-sdk (1.11.230). Я могу написать файл с помощью SSE-KMS, используя PutObjectRequest следующим образом:

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

но при попытке загрузить его в режиме multipart я не нашел способа указать конфигурацию шифрования для SSE-KMS.

Может ли кто-нибудь предложить способ успешно пройти через это. Любое предложение будет оценено по достоинству.

Викаш Парик


person Vikash Pareek    schedule 16.11.2017    source источник


Ответы (2)


Наконец, я могу найти решение для этого. Это можно сделать, установив заголовки для объекта 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);
person Vikash Pareek    schedule 23.11.2017

Также можно сделать так:

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