当前位置: 首页 > 知识库问答 >
问题:

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

祁曦哲
2023-03-14

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

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

但是我总是得到“com . Amazon AWS . services . S3 . model . Amazon S3 exception:Access Denied(服务:亚马逊S3;状态代码:403;错误代码:拒绝访问;请求ID: B6466D562B6988E2)“`作为回应,原因可能是什么

共有2个答案

乌和畅
2023-03-14

现在我复制文件使用java aws sdk这是由于缺乏元数据,而cpoing的文件,所以我们必须添加元数据使用复制copyObjRequest.setNewObjectMet诠释(对象元数据);参考http://docs.aws.amazon.com/AmazonS3/latest/dev/SSEUsingJavaSDK.html的详细信息

宇文飞羽
2023-03-14

出现这种错误的可能性很大(比如不存在的bucket、权限问题、源或目标bucket上应用的自定义策略等)。我建议在您的机器上设置AWS S3 CLI,并尝试不同的S3命令,以确保您实际上拥有正确的权限集来执行操作。这将允许您快速迭代并快速调试问题。我不反对在这里编写Java代码来做同样的事情,但cli绝对会为您节省时间。

也看看这个so链接,看看这是否能帮助你解决问题。

 类似资料: