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

时间:2017-12-21 17:29:01

标签: amazon-s3 google-cloud-storage gsutil

我需要将许多(1000+)个文件从GCS复制到s3以利用AWS lambda函数。我已对~/.boto.cfg进行了编辑,并注释了2 aws身份验证参数,但是 GCE EC2 VM中的简单gsutil ls s3://mybucket失败。

错误是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)

2 个答案:

答案 0 :(得分:8)

根据https://issuetracker.google.com/issues/62161892gsutil v4.28 支持AWS v4签名,方法是在~/.boto添加新的[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到GCS,我会考虑更少服务器Storage Transfer Service API。

答案 1 :(得分:0)

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

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

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

希望这有帮助