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

gsutil - 使用联合用户 AWS 密钥时 cp、rsync 的问题

在大文件上使用 rsync 的 gsutil int 错误

gsutil rsync 在 gzip/非 gzip 本地/云位置之间同步