-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathCustomerKey.java
More file actions
25 lines (20 loc) · 977 Bytes
/
CustomerKey.java
File metadata and controls
25 lines (20 loc) · 977 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package software.amazon.payloadoffloading;
import software.amazon.awssdk.services.s3.model.PutObjectRequest;
import software.amazon.awssdk.services.s3.model.CreateMultipartUploadRequest;
import software.amazon.awssdk.services.s3.model.ServerSideEncryption;
public class CustomerKey implements ServerSideEncryptionStrategy {
private final String awsKmsKeyId;
public CustomerKey(String awsKmsKeyId) {
this.awsKmsKeyId = awsKmsKeyId;
}
@Override
public void decorate(PutObjectRequest.Builder putObjectRequestBuilder) {
putObjectRequestBuilder.serverSideEncryption(ServerSideEncryption.AWS_KMS);
putObjectRequestBuilder.ssekmsKeyId(awsKmsKeyId);
}
@Override
public void decorate(CreateMultipartUploadRequest.Builder createStreamUploadRequestBuilder) {
createStreamUploadRequestBuilder.serverSideEncryption(ServerSideEncryption.AWS_KMS);
createStreamUploadRequestBuilder.ssekmsKeyId(awsKmsKeyId);
}
}