reg*_*low 6 google-cloud-storage gsutil google-cloud-platform
我正在谷歌存储桶中托管公开可用的静态资源,我想使用该gsutil rsync命令将我们的本地版本同步到存储桶,从而节省带宽和时间.我们的构建过程的一部分是预先gzip这些资源,但gsutil rsync无法设置Content-Encoding标头.这意味着我们必须运行gsutil rsync,然后立即运行gsutil setmeta以在所有gzip压缩文件类型上设置标头.这使得存储桶处于BAD状态,直到设置了该标头.另一种选择是使用gsutil cp,传递-z选项,但这需要我们每次都重新上传整个目录结构,这包括大量的图像文件和其他浪费时间和带宽的非压缩资源.
是否有原子方法来完成rsync并设置正确的Content-Encoding标头?
假设您从source-dir中的gzip压缩源文件开始,您可以:
gsutil -h content-encoding:gzip rsync -r source-dir gs://your-bucket
Run Code Online (Sandbox Code Playgroud)
注意:如果执行此操作然后以相反方向运行rsync,它将解压缩并将所有对象复制回来:
gsutil rsync -r gs://your-bucket source-dir
Run Code Online (Sandbox Code Playgroud)
这可能不是你想要发生的事情.基本上,使用rsync最安全的方法是简单地在源和目标之间按原样同步对象,而不是尝试在对象上设置内容编码.
| 归档时间: |
|
| 查看次数: |
2314 次 |
| 最近记录: |