繁体   English   中英

AWS s3同步工作是否需要最小尺寸?

[英]Is there a minimum size for aws s3 sync to work?

我需要将内容从到目前为止一直使用的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的身份运行aws s3 sync :user / myadminuser

我可以从新帐户中与用户一起浏览src-bucket ,也可以上传和下载文件。 运行最初提到的aws s3 sync命令将几百个对象从src-bucket复制到dst-bucket ,但对于其他一些对象对象则失败。

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

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

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

不,没有这样的事情。 我把错误的事情联系起来。 显然, s3 sync “取决于”能够复制对象的标签及其数据。 读取对象的标签是与读取对象数据不同的特权。 向新用户授予权限时,我缺少s3:GetObjectTagging操作。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM