使用 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的主要内容,如果未能解决你的问题,请参考以下文章
gsutil rsync Google Store 与 AWS S3 400 ExcessHeaderValues