gsutil rsync CommandException:目标()必须完全匹配 1 个 URL
Posted
技术标签:
【中文标题】gsutil rsync CommandException:目标()必须完全匹配 1 个 URL【英文标题】:gsutil rsync CommandException: Destination () must match exactly 1 URL 【发布时间】:2021-11-05 12:35:38 【问题描述】:我有一个云存储项目,一个包含不同目录(每个用户一个)的存储桶,每个目录都有不同的子目录,它们是日期分区。
我正在使用 Jupyter 笔记本和 gsutil。
我使用 !gsutil -m cp -r gs://bucket/directory/partition/ destination_directory
一次性将所有文件从云存储下载到本地计算机。
现在我想将添加到我已经下载的目录的任何新文件以及此后创建的任何新目录或分区从云同步到我的本地计算机。
我试过跑步
!gsutil rsync -r 'gs://bucket/user_id**' destination_directory
和
!gsutil rsync -r 'gs://bucket/user_id**/**/**.json' destination_directory
我使用通配符来避免 2 个以不同名称开头的目录。
但是我在这两种情况下都遇到了同样的错误,我不明白为什么:
CommandException:目标 (gs://bucket/user_id**) 必须与 1 个 URL 完全匹配
【问题讨论】:
源通配符正在扩展为多个源对象。 CLI 将其解释为多个目的地。 【参考方案1】:gsutil rsync
不支持源 URL 或目标 URL 的通配符 - 每个只有一个 URL。
这也意味着无法按照您尝试的方式列出您想要匹配的特定对象。
【讨论】:
谢谢!我刚刚意识到我可以通过执行 rsync -r -x "regex" source destination 来排除我不感兴趣的目录来解决这个问题。以上是关于gsutil rsync CommandException:目标()必须完全匹配 1 个 URL的主要内容,如果未能解决你的问题,请参考以下文章
gsutil - 使用联合用户 AWS 密钥时 cp、rsync 的问题
gsutil rsync 在 gzip/非 gzip 本地/云位置之间同步
如何从 python 脚本成功调用 gsutil rsync?