Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud storage 从谷歌云存储中提取RAR文件_Google Cloud Storage - Fatal编程技术网

Google cloud storage 从谷歌云存储中提取RAR文件

Google cloud storage 从谷歌云存储中提取RAR文件,google-cloud-storage,Google Cloud Storage,我使用RAR实用程序(100GB未压缩,20GB压缩)得到了一个大的多部分压缩CSV文件,所以我有100个RAR文件部分,它们被上传到Google云存储。我需要将其解压缩到谷歌云存储。如果我能在GAE上使用Python就最好了。有什么想法吗?我不想下载、提取和上传。我想在云中完成这一切。在云中无法直接解压缩/提取RAR文件。您知道gsutil-m(多线程/多处理)选项吗?它通过并行运行来加速传输。我建议这样做: 下载压缩存档文件 就地拆包 使用gsutil-m cp file pattern

我使用RAR实用程序(100GB未压缩,20GB压缩)得到了一个大的多部分压缩CSV文件,所以我有100个RAR文件部分,它们被上传到Google云存储。我需要将其解压缩到谷歌云存储。如果我能在GAE上使用Python就最好了。有什么想法吗?我不想下载、提取和上传。我想在云中完成这一切。

在云中无法直接解压缩/提取RAR文件。您知道
gsutil-m
(多线程/多处理)选项吗?它通过并行运行来加速传输。我建议这样做:

  • 下载压缩存档文件
  • 就地拆包
  • 使用
    gsutil-m cp file pattern dest bucket并行上传未打包的文件
除非您的internet连接速度非常慢,否则20GB不会花费很长时间(我预计不到一个小时),同样,并行上传也不会花费很长时间(尽管这是您获得的并行度的函数,而并行度又取决于存档文件的大小)


顺便说一句,您可以通过
parallel\u thread\u count
parallel\u process\u count
变量在
$HOME/.boto
文件中调整
gsutil-m
使用的并行性。

这个问题已经得到了回答(并被接受),但对于未来类似的用例,我建议完全在云中完成这项工作,方法是在GCE上启动一个小型Linux实例,例如,
f1 micro
,然后按照Marc Cohen在中的建议运行这些步骤。这些实例预装了
gsutil
,因此易于使用。完成后,只需关闭并删除微实例,因为生成的文件已经存储在谷歌云存储中

逐步说明:

  • 按照中的说明操作
  • 这样做的好处是,你不用下载到自己的计算机上,而是在谷歌云内部传输所有数据,因此传输速度应该非常快,而且不依赖于你自己的互联网连接速度或消耗你的任何带宽


    <强>注:>网络带宽与VM(VCPU)的大小成正比,因此为了更快的性能,考虑创建一个更大的VM。谷歌计算引擎如下:

  • 至少10分钟
  • 四舍五入到最近的一分钟

  • 因此,例如,考虑到
    n1-standard-1
    的成本为0.05美元/小时(截至2016年10月8日),15分钟的使用成本总计为0.0125美元。

    您能否详细说明如何做到这一点?@Soren-我编辑了答案,添加了分步说明,希望这能有所帮助。