繁体   English   中英

如何根据正则表达式从Google Cloud Storage存储桶中获取文件?

[英]How to get files from Google Cloud Storage bucket based on a regular expression?

我正在尝试从Google云存储桶中获取文件。 文件名类似于20180618_1400/SOMEID_20180618.jpg20180618_1200/SOMEID_20180618.jpg20180617_1400/SOMEOTHERID_20180617.jpg等。

我想获取基于SOMEID文件。 我尝试将以下代码与reg exp一起使用

bucket.getFiles({ prefix: new RegExp(`[0-9_]*\\/SOMEID_`), }, (err, files) => { if (err) return reject(err); resolve(files); });

预期结果是文件20180618_1400/SOMEID_20180618.jpg20180618_1200/SOMEID_20180618.jpg 但是代码返回了存储桶中的所有文件。

我在互联网上搜索,但找不到任何东西。

还有其他方法可以做到这一点吗?

前缀必须是字符串。 这是一个前缀,而不是正则表达式。 我看过要确定文档中的内容,并且按预期是不可能的。

在GCS中执行此操作的正确方法是使用前缀来构造存储桶,因为字符串可以使用。 例如,有一个用于个人资料图片的目录,一个用于pdf的目录,...而所有文件都使用您的用户ID命名。

例:

profiles/1245.jpg
profiles/7561.jpg
billing/1245-2018-10.pdf
billing/1245-2018-09.pdf
billing/7561-2018-10.pdf
...

如果不能,则必须获取所有项目,然后在其上应用正则表达式。 您在getFiles()文档结尾处有一个示例

我认为(已经有一段时间了),您可以使用gsutils使用正则表达式,但是gsutils会获取所有文件,然后将正则表达式应用于客户端,因此这不是一个更好的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM