我们使用 Amazon S3 和 JDK copyObject 方法将对象从一个存储桶复制到另一个存储桶。复印是自动进行的。 User1手动上传文件到源存储桶,systemUser传输到目标存储桶。 User1 是源存储桶和目标存储桶的所有者。
s3.copyObject(sourceBucket, objectKey, destinationBucket, objectKey);
复制有效,但复制后 User1 无法访问目标存储桶中复制的对象。拒绝访问。复制到目标存储桶后,复制对象的所有者是 systemUser。还尝试修改目标中复制对象的 acl。
s3.setObjectAcl(destinationBucket, objectKey, acl);
这也会导致访问被拒绝。
我们如何复制对象,以便 User1(复制到源存储桶并且是源存储桶和目标存储桶的所有者)可以访问目标存储桶中的文件?
最佳答案
由于保留政策,我们无法在复制后编辑文件(和权限)。我们切换到 CopyObjectRequest,它有一个选项可以在复制之前指定 ACL,并将其作为复制操作的参数。
关于java - 复制后 Amazon S3 Java SDK copyObject 权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51761749/