在生产传输中使用 gsutil 或谷歌云存储 API 有啥优势吗?

Posted

技术标签:

【中文标题】在生产传输中使用 gsutil 或谷歌云存储 API 有啥优势吗?【英文标题】:Is there any advantage to using gsutil or the google cloud storage API in production transfers?在生产传输中使用 gsutil 或谷歌云存储 API 有什么优势吗? 【发布时间】:2017-12-12 00:08:36 【问题描述】:

生产传输、gsutil 或谷歌云存储 API 哪个更好用?

【问题讨论】:

【参考方案1】:

gsutil 使用 Google Cloud Storage API 传输数据,特别是 JSON API(默认情况下,您可以更改它)。与直接使用 API 相比,它的主要优势在于它已经过调整以快速传输数据。例如,它可以同时打开多个与 GCS 的连接,每个连接同时上传或下载部分文件,这在许多情况下可以显着提高总吞吐量。

没有理由直接针对 API 进行编程也不能提供相同甚至更好的性能,但如果您以最简单的方式实现,我希望 gsutil 平均而言至少会快一点。

【讨论】:

【参考方案2】:

我不确定这是否比 Brandon 所说的增加了很多。我对 gcloud 存储和 Python 非常陌生,但我很快发现我更喜欢尽可能使用 gsutil 命令行而不是 python 客户端库。我创建了在启动后从云存储复制几 GB 输入数据的计算实例。我发现在可能的情况下使用 gsutil 命令行执行此操作既简洁又快捷,因此在我的 python 代码中我使用:

import subprocess
subprocess.call("gsutil -m cp gs://my-uberdata-archive/* /home/<username>/rawdata/", shell=True)

主要原因是我可以在一行中执行命令,而使用客户端库需要几行,正如 Brandon 指出的那样,gsutil 支持带有“-m”标志的多线程。我还没有找到使用 Python 客户端库执行此操作的等效方法。

【讨论】:

以上是关于在生产传输中使用 gsutil 或谷歌云存储 API 有啥优势吗?的主要内容,如果未能解决你的问题,请参考以下文章

中止 gsutil 传输

从 GSUtil 对谷歌云存储的身份验证

如何将 Json 转换为 CSV 并将其发送到大查询或谷歌云存储桶

如何使用 gsutil 通过 http 链接从谷歌云存储下载到 AWS 实例或 s3 存储桶?

从谷歌云存储到 s3 的 gsutil rsync 挂在大文件上

通过 gsutils 和谷歌云存储下载谷歌播放控制台统计信息