由于身份验证,gsutil 无法复制到 s3

gsutil cannot copy to s3 due to authentication

我需要将许多 (1000+) 个文件从 GCS 复制到 s3 以利用 AWS lambda 函数。我编辑了 ~/.boto.cfg 并注释掉了 2 个 aws 身份验证参数,但是一个简单的 gsutil ls s3://mybucketGCEEC2虚拟机。

错误是 The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.

我使用的是gsutil版本:4.28GCSS3桶的位置分别是US-CENTRAL1US East (Ohio) - 如果这是相关的。

我一无所知,因为 AWS 密钥有效并且我启用了 http/https。使用我笔记本电脑的 Cyber​​duck 从 GCS 下载并上传到 S3 是不切实际的 (>230Gb)

我遇到了类似的问题。这是我最终在 GCE 机器上做的事情:

第 1 步:使用 gsutil,我将文件从 GCS 复制到我的 GCE 硬盘 第 2 步:使用 aws cli (aws s3 cp ...),我将文件从 GCE 硬盘驱动器复制到 s3 存储桶

上述方法对我来说很可靠。我尝试使用 gsutil rsync 但它意外失败。

希望对您有所帮助

根据 https://issuetracker.google.com/issues/62161892gsutil v4.28 是否通过向 ~/.boto 添加一个新的来支持 AWS v4 签名[s3] 节喜欢

[s3]
# Note that we specify region as part of the host, as mentioned in the AWS docs:
# http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
host = s3.eu-east-2.amazonaws.com
use-sigv4 = True

该部分的使用是从 boto3 继承的,但目前不是由 gsutil config 创建的,因此需要为目标端点明确添加。

对于s3-to-GCS,我会考虑更无服务器的Storage Transfer Service API.