gsutil - 在 Windows 上使用正则表达式同步两个存储桶的内容时排除文件

Posted

技术标签:

【中文标题】gsutil - 在 Windows 上使用正则表达式同步两个存储桶的内容时排除文件【英文标题】:gsutil - Excluding files while synchronize contents of two buckets using regex on windows 【发布时间】:2016-09-21 19:44:13 【问题描述】:

我正在使用 python 的 gsutil 从私有 Google Cloud Bucket 获取数据。

为此,我使用 rsync 来同步两个文件夹。

语法如下: gsutil -m rsync -x '<i>pattern</i>' src_url dst_url

选项 -m 用于多线程,选项 -x 用于排除文件。

我要排除的模式是以 app_version 结尾的 csv 文件。

这就是我想出的:

gsutil -m rsync -x '.*app_version\.csv$' gs://pubsite_prod_rev_04681594767840986453/stats/installs/ test/

但是这种正则表达式模式不起作用。 它还同步 csv 文件。

任何人都可以帮助使这个正则表达式工作吗?

【问题讨论】:

是哪个,app_version.csv 还是 .csv?请确定你想要什么! 能否提供运行 gsutil version -l 的输出?我想知道这是否与您的操作系统或 Python 版本有关,因为当我尝试此命令时,gsutil 仅正确复制了名称不以 .csv 结尾的对象: gsutil rsync -x '.*\.csv$' gs://my-bucket/t 目录 gsutil version -l gsutil version: 4.19 python version: 2.7.0 OS: Windows 8的运行输出 【参考方案1】:

根据您在 Windows 上运行此命令的评论,我在 Windows 上尝试并发现了问题:正则表达式周围的单引号在 Windows 上不起作用,您应该使用双引号。以下命令正确地排除了 .csv 文件被复制:

\Python27\python.exe gsutil rsync -x ".*\.csv$" gs://my-bucket .

【讨论】:

以上是关于gsutil - 在 Windows 上使用正则表达式同步两个存储桶的内容时排除文件的主要内容,如果未能解决你的问题,请参考以下文章

gsutil - 正则表达式与替代不工作

在大文件上使用 rsync 的 gsutil int 错误

通过正则表达式或通配符一次操作 gsutil 中的多个存储桶

Google BigQuery:如何使用 gsutil 删除或覆盖表?

通过 GSUTIL 将文件从 Windows 10 文件夹上传到 Gcloud 存储桶时出现问题

gsutil - 如何从谷歌私有云复制/下载所有文件?