【问题标题】:Is there a minimum size for aws s3 sync to work?aws s3 sync 是否有最小尺寸才能工作?
【发布时间】:2018-05-02 11:10:42
【问题描述】:

我需要将内容从迄今为止一直使用的 S3 存储桶 (src-bucket) 移动到新 AWS 账户 (dst-bucket) 中的新 S3 存储桶中。据我所知,直接的方法是

aws s3 sync s3://src-bucket s3://dst-bucket --exclude "*" --include="important_prefix*"

但这只是有点作用。对于一部分对象,我不断收到错误消息

An error occurred (AccessDenied) when calling the CopyObject operation: Access Denied

我找不到原因。

到目前为止,我可以说所有无法同步的文件都相当小(小于 700kb),而成功复制的每个文件至少有几 MB。

s3 sync 可以工作之前,是否必须满足一些最小对象大小(具有相对较高的默认值)?


更多信息

  • 我可以完美地aws s3 cpaws s3api get-object 有问题的对象。他们只是失败了aws s3 sync
  • 在这两个帐户中,我都有一个具有S3FullAccess 权限的用户
  • 我在 src-bucket 中添加了以下存储桶策略

    {
    "Version": "2012-10-17",
    "Statement": [
    {
      "Sid": "Example permissions",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::newaccountid:user/myadminuser"
      },
      "Action": [
        "s3:GetBucketLocation",
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::src-bucket"
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::newaccountid:user/myadminuser"
      },
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::src-bucket/*"
    }
    ]
    }
    
    • 我以 newaccountid:user/myadminuser 身份运行 aws s3 sync

我可以使用新帐户的用户浏览src-bucket,并且可以正常上传和下载文件。运行最初提到的aws s3 sync 命令将几个100 个对象从src-bucket 复制到dst-bucket,但对于其他数百个对象失败。

我尝试将无法同步的对象与我能够成功同步的对象进行比较。我对src-bucket 中的许多对象做了aws s3api get-object-acl。它们的 ACL 看起来都一样,复制成功的和复制失败的:

{
    "Owner": {
        "ID": "reallylongidihadbashcomparethemformetomakesuretheyareidentical"
    },
    "Grants": [
        {
            "Grantee": {
                "Type": "CanonicalUser",
                "ID": "reallylongidihadbashcomparethemformetomakesuretheyareidentical"
            },
            "Permission": "FULL_CONTROL"
        }
    ]
}

dst-bucket 上,真正长的 id 是不同的,但除此之外 ACL 看起来相同。

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-cli


    【解决方案1】:

    不,没有这样的事情。我正在关联错误的事情。显然s3 sync“取决于”能否复制对象的标签以及它们的数据。读取对象的标签是与读取对象数据不同的特权。在向我的新用户授予权限时,我错过了 s3:GetObjectTagging 操作。

    显然,“他们”在开始使用对象标签的同时开始将数据分割成更小的块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-27
      • 1970-01-01
      相关资源
      最近更新 更多