【问题标题】:aws s3: can't move/copy files from one folder to otheraws s3:无法将文件从一个文件夹移动/复制到另一个文件夹
【发布时间】:2017-03-01 21:56:32
【问题描述】:

我有存储桶 A,其中有几个文件夹和一堆(根)对象。 我需要将存储桶 A 中的所有文件夹复制到存储桶 B,而根对象将保留在存储桶 A 中。

我按照 AWS 的说明选择存储桶 A 中的文件夹,点击“操作”-“剪切”,然后导航到存储桶 B,然后点击“粘贴”。

有一段时间看起来一切都很好。然后突然出现了一整串The following objects were not copied due to errors from: A

非常奇怪(对我不利)是它确实移动了一些文件,而导致错误的文件只是拒绝移动。

我什至将所有权限分配给 Everyone 用于两个存储桶的存储桶策略,认为这可能是权限问题。尽管如此,有问题的文件不会被移动。复制也失败。 我无语。 这里可能出了什么问题?

【问题讨论】:

    标签: amazon-web-services amazon-s3


    【解决方案1】:

    Amazon S3 管理控制台提供基本的剪切/复制/粘贴功能。但是,对于复杂的对象组,我不一定相信它。

    复制/移动文件的一个好方法是使用AWS Command-Line Interface (CLI)。例如:

    aws s3 cp s3://bucket1/path s3://bucket2/path --recursive
    

    在目录之间移动文件:

    aws s3 mv s3://bucket1/path s3://bucket1/path2 --recursive
    

    【讨论】:

    • 谢谢约翰。我忘了补充我实际上确实尝试过你的建议的问题。这是我得到的:copy failed: s3://bucket1/2016/10/21/file.png to s3://bucket2/2016/10/21/file.png An error occurred (AccessDenied) when calling the CopyObject operation: Access Denied - 我无法理解,因为我的角色Everyone 拥有两个存储桶的所有权限!为什么我现在会收到拒绝访问?
    • 所以,问题是访问是否在source上被拒绝,或者是否在destination上被拒绝。您可以尝试将 From 和 To 复制到同一个存储桶,但复制到不同的路径吗?这样您就可以检查哪个存储桶有不需要的权限,然后我们可以深入了解政策。
    • aws s3 cp --recursive s3://bucket1/2016/10/21/ s3://bucket1/test 失败并显示相同的错误消息。 aws s3 cp --recursive s3://bucket2/2016/10/2 s3://bucket2/test 成功。请注意,上面的 bucket2 操作是在不同的路径上。反正好像和bucket1有关。
    • 如果您知道其中一个文件失败了,您可以尝试通过就地副本更新该文件的权限:aws s3 cp s3://key s3://key --acl bucket-owner-full-control 信不信由你,将 IAM 权限分配给如果对象特定的权限不允许,用 S3 做任何事情并不一定能让你做任何事情。
    • 感谢您的耐心和愿意帮助约翰。我明白你在说什么,实际上我错过了我期望的 S3 上的操作——比如如果我是存储桶的所有者,则覆盖所有权限。无论如何 - 尝试你所建议的回报:fatal error: An error occurred (403) when calling the HeadObject operation: Forbidden
    猜你喜欢
    • 2017-11-07
    • 2019-09-02
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 2020-07-30
    相关资源
    最近更新 更多