gsutil rsync Google Store 与 AWS S3 400 ExcessHeaderValues
Posted
技术标签:
【中文标题】gsutil rsync Google Store 与 AWS S3 400 ExcessHeaderValues【英文标题】:gsutil rsync Google Store with AWS S3 400 ExcessHeaderValues 【发布时间】:2019-10-04 22:30:42 【问题描述】:我正在尝试同步两个存储桶,一个在 Google Store 中,第二个在 S3 中,为此我正在使用 gsutil
。我的boto配置如下:
[Credentials]
gs_access_key_id = XXXX
gs_secret_access_key = XXX
aws_access_key_id = XXX
aws_secret_access_key = XXX
[s3]
host = s3.eu-central-1.amazonaws.com
use-sigv4 = True
我的问题是,使用此配置,即使从 Google 商店同步到本地文件夹也不起作用!
gsutil -m rsync -r gs://some-bucket ./localfolder/
它失败并出现以下错误:
BadRequestException: 400 ExcessHeaderValues
<?xml version='1.0' encoding='UTF-8'?>
<Error>
<Code>ExcessHeaderValues</Code>
<Message>Multiple HTTP header values where one was expected.</Message>
<Details>Requests cannot specify both x-amz and x-goog headers</Details>
</Error>
当我删除 boto 配置中的 S3 部分时,从 Google Store 同步到本地文件夹的工作正常,但同步到 S3 存储桶失败并出现错误:
BadRequestException: 400 InvalidRequest
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>InvalidRequest</Code>
<Message>The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.</Message>
<RequestId>XXX</RequestId>
<HostId>XXX</HostId>
</Error>
有什么帮助吗?我搜索了很多类似的问题,但没有找到任何东西。
【问题讨论】:
【参考方案1】:问题是由use-sigv4 = True
属性引起的!删除它解决了我的问题。
【讨论】:
以上是关于gsutil rsync Google Store 与 AWS S3 400 ExcessHeaderValues的主要内容,如果未能解决你的问题,请参考以下文章
使用 gsutil rsync 更新从 Google 存储桶提供的静态网站的内容
gsutil rsync 尝试在将源迁移到新存储后重新上传所有内容
继续中断 rsync 后 .gstmp 文件上的 gsutil rsync 错误