文件使用Java SDK AWS
我用下面的代码从一个桶复制文件到其他桶文件使用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)“`作为回应可能是此原因
现在我使用的Java AWS SDK 这是由于没有元数据的同时cpoying文件,所以我们必须使用复制copyObjRequest.setNewObjectMetadata(objectMetadata);
裁判 http://docs.aws.amazon.com/AmazonS3/latest/dev/SSEUsingJavaSDK.html的细节
可能有很多可能性这样的错误(如不存在的存储桶,权限问题,应用于源或目标桶上的自定义策略等),我将推荐设置AWS S3 CLI,并尝试使用不同的s3 commands以确保您确实拥有正确的权限集来执行操作。这将允许您快速迭代并快速调试问题。我不反对在这里写Java代码来做同样的事情,但cli肯定会为你节省时间。
也看看这个SO link看看这是否可以帮助你解决你的问题。
l列出了存储桶和文件名存在还存在权限我有读写权限,我也可以下载并上传文件。但我不允许任何复制操作 –
您可以尝试CLI并分享发生的事情: aws s3 cp s3:// sourceBucketName/sourceKey s3:// destinationBucketName/destinationKey? – Saurabh
调用CopyObject操作时发生错误(AccessDenied):拒绝访问作为输出 –
也许添加元数据复制文件'错误代码:AccessDenied' –
是什么?错误代码:AccessDenied –
我有读取和写入权限,然后如何访问被拒绝? –