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