存储在谷歌云存储桶中的文件名(blob)列表

问题描述 投票:0回答:2

我的GCP项目中有一个GCS存储桶,里面有数百万个文件,每天都有其他人定期在那里上传文件。

由于文件数量巨大,搜索特定文件名查看是否上传速度太慢。

有没有办法在 BQ 表或 CSV 文件或其他文件中列出文件名和上传日期?它需要通过任何新文件上传进行更新,因此我认为 Google Cloud 功能将是一个很好的解决方案。

google-cloud-platform google-cloud-functions google-cloud-storage
2个回答
0
投票

您绝对可以从您的函数中订阅 Google Cloud Storage 事件 - 我们有一个 示例 可以做到这一点,因此每次上传具有图像内容类型的对象时,都会使用另一个 API 来创建注释。 (部署说明位于示例文档中。)

因此,您可以侦听最终/删除/存档事件并直接修改数据库 - 然后可能有一个定期任务(例如每天一次),列出所有对象并批量更新数据库,就像一种方式纠正可能发生的任何错误。例如,定期任务可以通过使用 Cloud Scheduler 的 Pub/Sub 订阅来实现。 然后,云函数可以轻松写入 Cloud Spanner、BigQuery 等。当然,值得考虑并发的影响 - 如果同时添加或删除大量文件,您将希望能够处理多个并发函数调用时间。 (这会使保存 CSV 文件比使用实际数据库更加棘手。)

我不

知道

Google Cloud 内置的任何功能,只是说“请通过 BigQuery 提供此存储桶中的 GCS 对象列表”——当然,它可能存在。


0
投票
那篇文章

正是针对这个用例,它在 BigQuery 中使用对象表。 如果您有数百万个对象,我建议

使用缓存

来加快搜索速度(但您的数据不会始终是最新的)。

© www.soinside.com 2019 - 2024. All rights reserved.