如何配置gsutil rsync同步Ubuntu服务器至Google Bucket的更新文件?
解决gsutil rsync同步更新同名文件的问题
核心问题分析
你当前使用的gsutil rsync命令默认会对比本地与Bucket中文件的修改时间和文件大小,只有当本地文件是新增的,或者属性(时间/大小)与云端不一致时才会同步。如果同名文件未被同步,大概率是参数使用问题,或者需要显式指定更精准的同步规则。
调整后的命令方案
1. 修复参数并启用默认差异同步
如果你命令中的-f是误加(该参数用于指定过滤规则文件),直接移除后,默认的rsync行为会自动同步更新后的同名文件:
gsutil -m rsync -a public-read -R -C /media/data_disk/ITEM/ gs://dev-cdn-assets-com/ITEM
2. 基于内容校验精准同步
如果需要确保只要文件内容不同就同步(不受修改时间/大小限制),添加-c参数,通过MD5校验和对比文件内容:
gsutil -m rsync -c -a public-read -R -C /media/data_disk/ITEM/ gs://dev-cdn-assets-com/ITEM
3. 强制全量覆盖同名文件
若不需要任何对比,直接强制覆盖Bucket中的所有同名文件,可改用gsutil cp命令(适合全量更新场景):
gsutil -m cp -a public-read -R /media/data_disk/ITEM/* gs://dev-cdn-assets-com/ITEM/
注意:该命令会上传本地所有文件(包括未修改的),适合需要强制统一本地与云端文件版本的场景。
参数说明
-m:启用多线程处理,提升同步/上传速度-a public-read:设置上传后的文件为公开可读权限-R:递归同步目录下的所有子内容-C:遇到错误时继续执行任务,不中断整体流程-c:基于MD5校验和对比文件,确保内容差异触发同步
内容的提问来源于stack exchange,提问作者user2693302
相关产品推荐
相关产品推荐

