使用 gsutil 从 GCP 同步到 S3

Posted

技术标签:

【中文标题】使用 gsutil 从 GCP 同步到 S3【英文标题】:Using gsutil to rsync from GCP to S3 【发布时间】:2020-09-12 06:06:20 【问题描述】:

有一个类似的问题,答案是here。但是,那里的最佳答案对我不起作用:

如果我使用:

gsutil -m rsync -r gs://your-gcs-bucket s3://your-s3-bucket

对我来说失败了:

The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'eu-west-2'

好的,rclone 确实有效,但为什么不使用 gsutil rync?

顺便说一句,我在伦敦地区。

【问题讨论】:

一个可能的线索可能是 AWS 中的这篇文章,它描述了一些原因和修复……这些听起来是否适用于您的故事? docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/… 我对此很熟悉,几乎所有涉及 GCP 或 AWS 的命令都有--region--zone 的选项。在这个更复杂的特殊情况下,我想在 GCP 命令的调用中为 AWS 设置区域。我尝试过使用 GCP 和 AWS 的 ENV 设置或默认设置,但到目前为止无济于事。我希望我能理解 hor rclone 正在整理这个问题。 只是一个疯狂的猜测......也许编辑 ~/.boto 我正在考虑几种可能性...... host=s3.eu-west-2.amazonaws.com 在 s3 部分下或 https_validate_certificates = false 在 Boto 部分下。 感谢@Kolban 的提示,确实,编辑~/.boto 并在[Credentials] 下添加s3_host = s3.eu-west-2.amazonaws.com 确实解决了这个问题。 【参考方案1】:

与 gsutil 命令相关的是一个名为 ~/.boto 的配置文件。在这个文件中可以添加/编码:

[Credentials]
s3_host=s3.eu-west-2.amazonaws.com

有关此文件的详细信息及相关信息,请参见:

config - Obtain credentials and create configuration file

【讨论】:

以上是关于使用 gsutil 从 GCP 同步到 S3的主要内容,如果未能解决你的问题,请参考以下文章

加快谷歌云存储传输到s3

gsutil 是不是支持 aws s3 的 sigv4?

gsutil rsync Google Store 与 AWS S3 400 ExcessHeaderValues

cloud/gsutil 将文件从实例复制到存储桶

gsutil - 在 Windows 上使用正则表达式同步两个存储桶的内容时排除文件

gsutil 从 s3 匿名复制?