Jef*_*ner 6 google-cloud-storage
我有静态资产存储在GCS中,我想为它们提供gzip压缩(但它们是在没有压缩的情况下上传的).有没有办法设置文件进行压缩而无需下载并以gzip格式重新上传?
我尝试使用gsutil设置内容编码头(即,gsutil setmeta -h 'Content-Encoding:gzip' <some_object_uri>但它只是导致文件上的"服务不可用"(我假设是来自服务器尝试解压缩文件并失败或类似的东西).
如果不下载并重新上传,就无法压缩对象。
但是,您可以让 gsutil 为您执行此操作,如果您从 Google 计算引擎 (GCE) 虚拟机 (VM) 运行它,则只需按操作计数付费,而不按带宽付费。
另外,关于使用 设置内容编码标头setmeta,您对所发生事件的解释是正确的。您在对象上设置元数据以指示它包含 gzip 数据,但内容不包含有效的 gzip 流,因此当您尝试使用 下载它时Accept-Encoding: gzip,GCS 服务会尝试解压缩流并失败。
我建议将存储桶下载到 GCE VM 上的本地磁盘:
gsutil cp -r gs://bucket /path/to/local/disk
Run Code Online (Sandbox Code Playgroud)
然后,使用-z选项指示要 gzip 的文件扩展名:
gsutil cp -z js,css,html -r /path/to/local/disk gs://bucket
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
957 次 |
| 最近记录: |