将文件从 S3 存储桶复制到 Google Cloud Storage
Posted
技术标签:
【中文标题】将文件从 S3 存储桶复制到 Google Cloud Storage【英文标题】:Copy Files from S3 bucket to Google Cloud Storage 【发布时间】:2017-11-29 22:17:46 【问题描述】:尝试使用 Storage Transfer 将数据从 AWS S3 提取到 Google Cloud Storage。
我有 S3 存储桶“访问密钥 ID”和“秘密访问密钥”,并且能够从 gsutil(从笔记本电脑)复制,但它从存储传输中引发权限错误。
不了解它如何与 gsutil 一起工作,但不了解存储传输。
错误信息:
Invalid access key. Make sure the access key for your S3 bucket is correct, or set the bucket permissions to Grant Everyone.
有没有办法在计算引擎中使用 gsutil 将文件从 S3 复制到 GCS?
谢谢,
【问题讨论】:
存储传输应该可以。您是否考虑过启用 S3 存储桶日志和 CloudTrail 以查看是否有任何请求到达?当然还验证了您的访问密钥和密钥没有复制/粘贴错误? 我不是启用 S3 存储桶日志的 S3 存储桶的所有者。我与 S3 存储桶所有者进行了核对,他确认 S3 存储桶具有适当的权限,并且我可以通过在 boto 文件中添加密钥和秘密来使用 gsutil 进行复制。密钥和秘密是正确的,我交叉检查了。 可能存在存储传输需要而gsutil不需要的权限,如s3:GetObjectAcl
。 (这是一个猜测。)如果无法访问用户和存储桶策略,则很难进行故障排除。但是,是的,您可以在 Google Compute Engine、EC2 或任何拥有带宽服务器的地方使用 gsutil。只要它在地理位置上靠近两个存储桶,它就不会影响您在哪里运行。
谢谢迈克尔。在我需要传递 S3 存储桶密钥和秘密信息的计算引擎中,我找不到 boto 文件。当我在 Windows 笔记本电脑上测试时,我在 boto 文件中输入了密钥和密钥信息并进行了测试。
【参考方案1】:
使用以下行在主目录中创建 .boto 文件。 gsutil 能够连接到 aws S3 存储桶。
[Credentials]
aws_access_key_id = <key>
aws_secret_access_key = <secret key>
谢谢,
【讨论】:
以上是关于将文件从 S3 存储桶复制到 Google Cloud Storage的主要内容,如果未能解决你的问题,请参考以下文章
使用 Node 将文件从一个 AWS S3 存储桶复制到另一个存储桶
大文件 RSYNC / CP 从 Google Bucket 到 S3 失败
将所有文件从 Amazon S3 存储桶复制到 Microsoft Azure 容器的最佳方法