我需要将许多(1000+)个文件从GCS复制到s3以利用AWS lambda函数。我编辑了~/.boto.cfg
并注释掉了2个aws认证参数,但是简单的gsutil ls s3://mybucket
无法从GCE或EC2 VM中失败。
错误是The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.
。
我使用gsutil版本:4.28
和GCS和S3桶的位置分别是US-CENTRAL1
和US East (Ohio)
- 如果这是相关的。
我无能为力,因为AWS密钥有效,我启用了http / https。从GCS下载并使用我的笔记本电脑的Cyberduck上传到S3是不切实际的(> 230Gb)
根据https://issuetracker.google.com/issues/62161892,gsutil
v4.28通过向AWS
添加一个新的~/.boto
部分来支持[s3]
v4签名
[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到GCS,我会考虑更少服务器的Storage Transfer Service
API。
我遇到了类似的问题。这是我最终在GCE机器上做的事情:
步骤1:使用gsutil,我将文件从GCS复制到我的GCE硬盘步骤2:使用aws cli(aws s3 cp ...),我将文件从GCE硬盘复制到s3桶
上述方法对我来说可靠。我尝试使用gsutil rsync但它意外失败。
希望这可以帮助