当文件未在服务器端加密(纯文本)时,以下代码适用。我正在尝试从同一存储桶下载另一个文件,但是此文件已通过KMS加密。

我已经尝试过SSECustomerKey并添加了.withSSECustomerKey(myKey),但是没有运气。关于如何修改此代码的任何想法,还是可以向我指出正确的方向?

AmazonS3 s3bucket = AmazonS3ClientBuilder.standard().withRegion("us-east-2").build();
    S3Object download = s3bucket.getObject("mybucket-bucket", "secretfile2.txt");

    try
    {
        download = IOUtils.toString(download.getObjectContent());
    }
    catch (IOException e1)
    {
        e1.printStackTrace();
    }

最佳答案

首先创建一个关键对象:

SSECustomerKey sseKey = new SSECustomerKey(secretKey);


然后使用该密钥创建一个请求:

GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, keyName).withSSECustomerKey(sseKey);


然后,您检索对象:

s3client = new AmazonS3Client(...);
S3Object s3Object = s3client.getObject(getObjectRequest);

09-11 19:27