You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

gsutil rsync使用通配符同步云存储文件报Destination需匹配1个URL错误如何解决

错误触发原因

这个报错是gsutil rsync命令的设计规则导致的,核心原因有2个:

  • gsutil rsync要求源路径、目标路径都必须对应唯一的根URL,不支持源路径使用通配符匹配多个顶层路径。你写的gs://bucket/user_id**会被通配符展开匹配到多个前缀为user_id的路径,不符合单源要求,就触发了“必须匹配恰好1个URL”的报错。
  • cp命令支持多源输入,所以你之前用通配符执行cp可以正常运行,但rsync是为单源到单目标的增量同步设计的,逻辑上不支持多源输入,和cp的规则不一致。
解决方案

不要把过滤用的通配符写在源路径参数里,改用rsync自带的包含(-i/--include)、排除(-x/--exclude)参数实现过滤需求即可,两种常用场景的写法如下:

  1. 仅同步单个用户目录下的内容,排除该目录下2个名称不符的子目录
    假设你要同步的用户目录为gs://bucket/user_id123/,要排除的子目录为temp、test,命令为:
!gsutil rsync -r -x '^(temp|test)/.*' gs://bucket/user_id123/ destination_directory
  1. 同步所有前缀为user_id的用户目录下的json文件和新增目录
    源路径直接写桶根路径,用过滤规则控制匹配范围,规则优先级为「先写包含规则,最后写排除所有未匹配内容的规则」:
!gsutil rsync -r \
  -i '^user_id[^/]*' \
  -i '^user_id.*/.*\.json$' \
  -x '.*' \
  gs://bucket/ destination_directory

注意:rsync的源路径末尾加斜杠是同步目录内的内容,不加斜杠是把目录本身同步到目标下,可根据你的实际需求调整。

内容的提问来源于stack exchange,提问作者Ron Borenstein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:00:00