当我手动将文件上传到 S3 时,我必须对其进行加密并且它工作正常,我正在尝试对使用服务器端加密的 SDK 执行相同的操作。我没有看到任何错误,但我也没有看到该文件。
AmazonS3Client s3Client = new AmazonS3Client(new DefaultAWSCredentialsProviderChain());
AmazonS3URI uri = new AmazonS3URI("https://s3.amazonaws.com/xyz/abc");
File file = new File("/home/ec2-user/abc");
PutObjectRequest putRequest = new PutObjectRequest(uri.getBucket(), uri.getKey(), file);
ObjectMetadata objectMetadata = new ObjectMetadata();
objectMetadata.setServerSideEncryption(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);
putRequest.setMetadata(objectMetadata);
PutObjectResult response = s3Client.putObject(putRequest);
System.out.println("Uploaded object encryption status is " + response.getContentMd5());
我认为您的 URI 不正确:AmazonS3URI uri = new AmazonS3URI("https://s3.amazonaws.com/xyz/abc");
您需要在某处提供存储桶名称 - 它可能应该在s3.amazonaws part
.
最好只明确指定存储桶名称和键:
PutObjectRequest putRequest = new PutObjectRequest("my.bucket.name", "dir/dir/file.txt", file);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句