首页 文章

使用java aws sdk将文件从一个存储桶复制到另一个存储桶

提问于
浏览
0

我使用以下代码将文件从一个存储桶复制到另一个存储桶

AmazonS3 s3client = new AmazonS3Client(new ProfileCredentialsProvider());
s3client.copyObject(sourceBucketName, sourceKey, 
                    destinationBucketName, destinationKey);

但我总是得到“com.amazonaws.services.s3.model.AmazonS3Exception:Access Denied(服务:亚马逊S3;状态代码:403;错误代码:AccessDenied;请求ID:B6466D562B6988E2)”`作为响应可能是什么原因为了那个原因

2 回答

  • 2

    可能有很多可能会出现这样的错误(如不存在的存储桶,权限问题,应用于源或目标存储桶的自定义策略等) . 我建议您在计算机上设置AWS S3 CLI并尝试不同的s3 commands以确保您实际上有权限集进行操作 . 这将允许您快速迭代并快速调试问题 . 我并不反对在这里编写Java代码来做同样的事情,但cli肯定会为你节省时间 .

    另外看这个SO link看看这是否有助于你解决问题 .

  • 0

    现在我使用java aws sdk复制文件这是因为在使用cpoying文件时缺少元数据所以我们必须使用copy copyObjRequest.setNewObjectMetadata(objectMetadata); ref http://docs.aws.amazon.com/AmazonS3/latest/dev/SSEUsingJavaSDK.html添加元数据以获取详细信息

相关问题