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

问题描述 投票:7回答:2

我需要将许多(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-CENTRAL1US East (Ohio) - 如果这是相关的。

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

amazon-s3 google-cloud-storage gsutil
2个回答
8
投票

根据https://issuetracker.google.com/issues/62161892gsutil 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。


0
投票

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

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

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

希望这可以帮助

© www.soinside.com 2019 - 2024. All rights reserved.