我使用以下代码将文件从一个存储桶复制到另一个存储桶
AmazonS3 s3client = new AmazonS3Client(new ProfileCredentialsProvider());
s3client.copyObject(sourceBucketName, sourceKey,
destinationBucketName, destinationKey);
但我总是得到 “com.amazonaws.services.s3.model.AmazonS3Exception:拒绝访问(服务:Amazon S3;状态代码:403;错误代码:AccessDenied;请求ID:B6466D562B6988E2)”`作为可能原因的反应
答案 0 :(得分:2)
有很多可能会出现这样的错误(例如不存在的存储桶,权限问题,应用于源或目标存储桶的自定义策略等)。我建议您在计算机上设置AWS S3 CLI并尝试不同的s3 commands以确保您实际拥有正确的权限集来执行操作。这将允许您快速迭代并快速调试问题。我并不反对在这里编写Java代码,但cli肯定会为你节省时间。
另请查看此SO link,了解这是否有助于您解决问题。
答案 1 :(得分:0)
现在我使用java aws sdk复制文件
这是因为在归档文件时缺少元数据,因此我们必须使用副本copyObjRequest.setNewObjectMetadata(objectMetadata);
添加元数据
REF
http://docs.aws.amazon.com/AmazonS3/latest/dev/SSEUsingJavaSDK.html了解详情