有没有办法 grep 浏览存储在 Google Cloud Storage 中的文本文档?

Is there a way to grep through text documents stored in Google Cloud Storage?

问题

有没有办法 grep 浏览存储在 Google 云存储中的文本文档?

背景

我在 VM 上存储了超过 10,000 个文档(txt 文件)并且正在用完 space。在达到限制之前,我想将文档移动到另一个位置。 目前,我正在考虑迁移到 GCP 上的 Google Cloud Storage。

问题

我有时需要用特定的关键字来搜索文档。 我想知道是否有任何方法可以 grep 浏览上传到 Google Cloud Storage 的文档? 我检查了 gsutil 文档,但似乎支持 ls、cp、mv、rm,但我没有看到 grep。

很遗憾,gsutil 没有像 grep 这样的命令。

唯一类似的命令是gsutil cat

我建议你可以创建一个小型虚拟机,在云上进行 grep 会更快更便宜。

gsutil cat gs://bucket/ | grep "what you wnat to grep"

不错。我只是想提一下,Google云存储是一种用于存储文件的产品,并不关心文件的内容。此外,它被设计为可大规模扩展,并且您要求的操作在计算上非常昂贵,因此将来不太可能在本地支持它。

对于你的情况,我会考虑创建文本文件的索引,trigger an update for it every time a new file is upload to GCS

我还有一个建议。您可能需要考虑使用 Google Dataflow 来处理文档。您可以移动它们,但更重要的是,您可以使用 Dataflow 转换文档。

我找到了这个问题的答案。 gcpfuse 解决了这个问题。

将google 云存储挂载到特定目录。 你可以从那里 grep。

https://cloud.google.com/storage/docs/gcs-fuse https://github.com/GoogleCloudPlatform/gcsfuse

我写了一个 Linux 原生二进制文件 [mrgrep](针对 ubuntu 18.04)(https://github.com/romange/gaia/releases/tag/v0.1.0) 正是这样做的。它直接从 GCS 读取,作为奖励,它处理压缩文件并且是多线程的。