【问题标题】:How do I set a request header(x-amz-server-side-encryption : aws:kms) while saving file to S3 in Java code?如何在 Java 代码中将文件保存到 S3 时设置请求标头(x-amz-server-side-encryption : aws:kms)?
【发布时间】:2019-12-01 20:17:13
【问题描述】:

下面是我使用 KMS 服务器端加密将文件上传到 S3 的代码。但是,我收到异常“使用 AWS KMS 托管密钥进行服务器端加密需要 HTTP 标头 x-amz-server-side-encryption : aws:kms”;

不确定在 Java 代码中将标头放置在何处以保存文件。

private static void saveServerSideEncryptedFileToAWS(String clientRegion, String bucketName, String awsFilePath, File file) {
            AmazonS3 s3client = AmazonS3Client.builder()
                    .withRegion(clientRegion)
                    .withCredentials(new AWSStaticCredentialsProvider(credentials))
                    .build();

            ObjectMetadata objectMetadata = new ObjectMetadata();
            //objectMetadata.setHeader("x-amz-server-side-encryption" , "aws:kms");

            objectMetadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);

            PutObjectRequest putRequest = null;
            try {
                putRequest = new PutObjectRequest(bucketName,
                        awsFilePath,
                        new FileInputStream(file),
                        objectMetadata).withSSEAwsKeyManagementParams(new SSEAwsKeyManagementParams("arn:aws:kms:<<key>>"));
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }

            // Upload the object and check its encryption status.
            PutObjectResult putResult = s3client.putObject(putRequest);
            printEncryptionStatus(putResult);
        }

【问题讨论】:

    标签: java amazon-s3 encryption request-headers aws-kms


    【解决方案1】:

    我通过一些尝试和尝试得到了答案...-- putRequest.putCustomRequestHeader("x-amz-server-side-encryption","aws:kms");

    【讨论】:

    • 我很惊讶没有人支持它。谢谢你。 GG
    • 使用库 AWS SDK 2.x 时如何做同样的事情?我尝试在 MetaData 中添加标题,但它不起作用
    猜你喜欢
    • 2017-11-09
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-18
    • 2017-08-21
    相关资源
    最近更新 更多