在Windows系统中使用gcloud storage rsync同步Google Cloud Storage存储桶及抑制无效字符警告的方法
在Windows系统中使用gcloud storage rsync同步Google Cloud Storage存储桶及抑制无效字符警告的方法
我太懂你这种感受了——明明本地和桶里的文件都没有Windows文件名禁止的/:*?"<>|字符,可一跑gcloud storage rsync就弹出一堆无效字符的警告,虽说最后同步成功了,但满屏的警告看着真的闹心。
先给你捋清楚这个警告的来头:这大概率是gcloud工具在后台处理对象列表时生成临时内部文件名的小问题,不是你实际的文件有问题,属于工具自身的“小bug”或者说行为差异,完全不用担心文件本身的完整性。
下面给你几个实用的解决办法,按需选择:
精准过滤特定警告(推荐)
如果你还想保留正常的同步进度输出,只是不想看到那串无效字符的警告,可以用Windows命令行的重定向和过滤功能。把你的命令改成这样:gcloud storage rsync gs://my-bucket/normal C:\my-folder\normal 2>&1 | findstr /v "WARNING: The following characters are invalid in Windows file and directory names:"简单解释下:
2>&1是把警告/错误输出转到标准输出,findstr /v则会把包含指定警告内容的行直接过滤掉,剩下的正常复制进度信息都会保留。更新gcloud到最新版本
有时候这类工具的小问题会在后续版本中被修复,你可以先试试更新gcloud组件:gcloud components update更新完成后再重新运行同步命令,说不定那些警告就自动消失了。
启用安静模式(慎用)
如果你完全不需要同步过程的输出,可以给rsync命令加上--quiet参数,它会抑制所有非必要的输出,包括警告:gcloud storage rsync gs://my-bucket/normal C:\my-folder\normal --quiet不过要注意,这个参数会把正常的复制进度也一起隐藏,适合不需要监控过程的定时任务场景。
备注:内容来源于stack exchange,提问作者smoore4




