首页 > 解决方案 > 复制后 Amazon S3 Java SDK copyObject 权限被拒绝

问题描述

我们正在使用带有 JDK copyObject 方法的 Amazon S3 将对象从一个存储桶复制到另一个存储桶。复制是自动的。User1手动上传文件到源bucket,systemUser传输到目的bucket。User1 是源和目标存储桶所有者。

s3.copyObject(sourceBucket, objectKey, destinationBucket, objectKey);

复制有效,但复制后 User1 无法访问目标存储桶中复制的对象。拒绝访问。在目标存储桶中复制后复制的对象所有者是 systemUser。还尝试修改目标中复制对象的 acl。

s3.setObjectAcl(destinationBucket, objectKey, acl);

这也给出拒绝访问。

我们如何复制对象,以便 User1(复制到源存储桶并且是源存储桶和目标存储桶的所有者)可以访问目标存储桶中的文件?

标签: javaamazon-web-servicesamazon-s3

解决方案


由于保留政策,我们无法在复制后编辑文件(和权限)。我们切换到 CopyObjectRequest,它具有在复制之前指定 ACL 并将其作为参数提供给复制操作的选项。


推荐阅读