我使用 RAR 实用程序(未压缩 100GB,压缩 20GB)获得了一个大的多部分压缩 CSV 文件,因此我有 100 个 RAR 文件部分,它们已上传到 Google Cloud Storage。我需要将其提取到 Google Cloud Storage。如果我可以在 GAE 上使用 Python,那将是最好的。有任何想法吗?我不想下载、提取和上传。我想在云端完成这一切。
2 回答
这个问题已经得到回答(并被接受),但对于未来的类似用例,我建议通过在 GCE 上启动一个小型 Linux 实例(例如 ,f1-micro
然后运行 Marc Cohen 在他的回答。这些实例gsutil
已预装,因此易于使用。完成后,只需关闭并删除您的微实例,因为您生成的文件已存储在 Google Cloud Storage 中。
分步说明:
这样做的好处是,您无需下载到您自己的计算机,而是在 Google Cloud 本身内传输所有数据,因此传输速度应该非常快,并且不依赖于您自己的互联网连接速度或消耗您的任何带宽。
注意:网络带宽与 VM 的大小(以 vCPU 为单位)成正比,因此为了获得更快的性能,请考虑创建更大的 VM。VM 实例的Google Compute Engine定价如下:
- 最少 10 分钟
- 四舍五入到最接近的分钟
因此,例如,假设n1-standard-1
成本为 0.05 美元/小时(截至 2016 年 10 月 8 日),使用 15 分钟总共将花费 0.0125 美元。
无法直接在云端解压缩/解压 RAR 文件。您知道gsutil -m
(多线程/多处理)选项吗?它通过并行运行来加快传输速度。我建议这个顺序:
- 下载压缩存档文件
- 本地解包
- 使用并行上传解压文件
gsutil -m cp file-pattern dest-bucket
除非您的互联网连接速度非常慢,否则 20GB 应该不会花费很长时间(我预计不到一个小时),并行上传也是如此(尽管这是您获得多少并行度的函数,而这又取决于存档文件的大小)。
顺便说一句,您可以gsutil -m
通过文件中的parallel_thread_count
和parallel_process_count
变量调整使用的并行性$HOME/.boto
。