如何解决在“ gsutil cp”下载期间启用压缩
gsutil命令supports options仅在传输期间启用压缩(使用-J
或-j ext
),从而允许您仅在传输期间进行压缩,从而节省了网络带宽并加快了副本本身的速度
从GCS 下载到本地计算机时,是否有等效的方法?也就是说,如果我在gs://foo/bar/file.json
处有未压缩的文本文件,是否有与-J
等效的文件仅在传输过程中会压缩“ file.json”的内容?
目标是加快从远程到本地的复制速度,这不仅是针对单个文件,而是数十个文件。我已经在使用-m
进行并行复制,但想传输压缩数据以减少网络传输时间。
我在文档中没有发现任何相关内容,并且在下载过程中似乎没有包含-J
的任何内容。我尝试了以下操作,但是无论是否存在-J
,gsutil所打印的“ ETA”数字都相同:
gsutil -cp -J gs://foo/bar/file.json .
解决方法
此功能尚不可用。
作为替代方案,您将需要实施自己的压缩解决方案,无论是App Engine,Cloud Function还是Cloud Run。您的应用程序需要在文件位于Cloud Storage上时对其进行压缩。
理想的解决方案是将-m
与压缩文件一起使用。这意味着您要制作压缩文件的并行副本。考虑以下结构。如果您的工作方式为[1],则将分别下载每个文件。如果您查看[2],则只会下载压缩文件。
[1]
Bucket Foo
├───FooScripts
│ ├───SysWipe.sh
│ └───DropAll.sql
├───barconfig
│ ├───barRecreate.sh
│ └───reGenAll.sql
├───Baz
│ ├───BadBaz.sh
│ └───Drop.sh
...
[2]
Bucket Foo
├───FooScripts
│ ├───SysWipe.sh
│ └───DropAll.sql
│ ├───FooScripts.zip
├───barconfig
│ ├───barRecreate.sh
│ └───reGenAll.sql
│ ├───barconfig.zip
├───Baz
│ ├───BadBaz.sh
│ └───Drop.sh
│ ├───Baz.zip
...
下载完数据后,您应该考虑删除压缩文件,因为操作不再需要它们,因此您需要付费。或者,您可以在Public Issue Tracker上提出功能请求,该请求将发送给Cloud Storage团队,他们可以调查此请求的可行性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。