gpt4 book ai didi

amazon-s3 - 从 S3 传输到 Google 存储 - key 不正确

转载 作者:行者123 更新时间:2023-12-04 16:31:05 26 4
gpt4 key购买 nike

过去几个小时我一直在尝试设置从 S3 到我的谷歌存储桶的传输。

创建传输时,我不断收到的错误是:“访问 key 无效。确保您的 S3 存储桶的访问 key 正确,或将存储桶权限设置为授予所有人。”

访问 key 和 secret 都是正确的,因为它们目前在生产中用于 S3 完全访问。

需要注意的几点:

  • 在 S3 存储桶上启用 CORS
  • 存储桶策略仅允许经过身份验证的 AWS 用户列出/查看其内容
  • S3 需要签名 URL 才能访问

  • 存储桶策略:
    {
    "Version": "2008-10-17",
    "Id": "Policy234234234",
    "Statement": [
    {
    "Sid": "Stmt234234",
    "Effect": "Allow",
    "Principal": {
    "AWS": "*"
    },
    "Action": [
    "s3:AbortMultipartUpload",
    "s3:GetObjectAcl",
    "s3:RestoreObject",
    "s3:GetObjectVersion",
    "s3:DeleteObject",
    "s3:DeleteObjectVersion",
    "s3:PutObjectVersionAcl",
    "s3:PutObjectAcl",
    "s3:GetObject",
    "s3:PutObject",
    "s3:GetObjectVersionAcl"
    ],
    "Resource": "arn:aws:s3:::mybucket/*"
    },
    {
    "Sid": "2",
    "Effect": "Allow",
    "Principal": {
    "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity xyzmatey"
    },
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::mybucket/*"
    },
    {
    "Sid": "3",
    "Effect": "Allow",
    "Principal": {
    "AWS": "*"
    },
    "Action": [
    "s3:ListBucket",
    "s3:GetBucketLocation"
    ],
    "Resource": "arn:aws:s3:::mybucket"
    }
    ]
    }

    CORS 政策
    <?xml version="1.0" encoding="UTF-8"?>
    <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
    <AllowedOrigin>http://www.mywebsite.com</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>DELETE</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>*</AllowedHeader>
    </CORSRule>
    <CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedHeader>AUTHORIZATION</AllowedHeader>
    </CORSRule>
    <CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>HEAD</AllowedMethod>
    <AllowedHeader>AUTHORIZATION</AllowedHeader>
    </CORSRule>
    </CORSConfiguration>

    知道我哪里出错了吗?

    编辑:我已经设置了 gsutil google 计算实例上的工具,并在确切的存储桶上使用相同的 AWS key 进行了复制。像魅力一样工作..

    最佳答案

    我是 Transfer Service 的开发者之一。

    您需要将“s3:GetBucketLocation”添加到您的权限中。

    但是,如果您收到的错误更具体地与您的 ACL 相关,而不是无效的 key ,那就更好了。我会调查一下。

    编辑:向这篇文章添加更多信息。有文档列出了这个要求:https://cloud.google.com/storage/transfer/

    这是“配置访问”部分的引用:

    “如果您的源数据是 Amazon S3 存储桶,则设置一个 AWS Identity and Access Management (IAM) 用户,以便您让用户能够列出 Amazon S3 存储桶, 获取存储桶的位置 ,并读取桶中的元素。” [强调我的。]

    EDIT2:这个答案中提供的大部分信息可能对其他人有用,所以它会保留在这里,但约翰的答案实际上已经深入到了 OP 问题的底部。

    关于amazon-s3 - 从 S3 传输到 Google 存储 - key 不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35208370/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com