我正在开发一个将提供大量文件的应用程序。假设这是一家汽车公司。每辆车都有一个文件夹,其中包含该车的文档/文件。这些文件被上传到类别中,在 GStorage 中表示为“文件夹”。 2 辆不同汽车的 2 个文件可能如下所示:
car1/receipt/2016-02-02_payment.pdf
car1/pictures/tires.png
car2/receipt/2016-01-02_payment.pdf
假设我想列出我的申请中的所有收据。我该怎么做?由于 Google Cloud Storage 中的搜索功能非常有限,我当前提出的解决方案是拥有一个包含所有文件的镜像数据库表,当我想要访问文件时,我会为用户生成 URL。如果 GStorage 有一种搜索 */ 文件的方法,那就太好了。
在您的示例中,您可以使用通配符和
gsutil
来列出您的存储桶内容来实现此目的:
gsutil ls gs://your-bucket/car*/receipt
gsutil 支持 * 和 ?通配符仅适用于文件。要在通配符目标中包含文件夹,您需要将 * 或 ? 加倍符号。例如,gsutil ls gs:///**.txt 将列出所有子目录中的所有文本文件。通配符页面提供更多详细信息。
要列出或搜索 Google Cloud Storage 存储桶中的所有文本文件,您可以使用以下命令之一:
对于特定存储桶:
gcloud storage ls gs://<bucket>/**.txt
要搜索所有存储桶:
gcloud storage ls gs://*/**.txt
有关更多详细信息,请参阅通配符页面:https://cloud.google.com/storage/docs/wildcards