2016-11-04 145 views
0

我用下面的代码从一个桶复制文件到其他桶文件使用Java SDK AWS

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

也许添加元数据复制文件'错误代码:AccessDenied' –

+0

是什么?错误代码:AccessDenied –

+0

我有读取和写入权限,然后如何访问被拒绝? –

回答

1

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

也看看这个SO link看看这是否可以帮助你解决你的问题。

+0

l列出了存储桶和文件名存在还存在权限我有读写权限,我也可以下载并上传文件。但我不允许任何复制操作 –

+1

您可以尝试CLI并分享发生的事情: aws s3 cp s3:// sourceBucketName/sourceKey s3:// destinationBucketName/destinationKey? – Saurabh

+0

调用CopyObject操作时发生错误(AccessDenied):拒绝访问作为输出 –