在 Firebase 存储中搜索没有扩展名的文件
Search for files without extension in Firebase Storage
是否可以只通过名称搜索文件而不知道其扩展名(jpg 或 png)?
所有文档都使用 filename.extension.
从技术上讲,Google 云存储中的 "file" 只是一个对象,其名称可能包含看起来像 "file" 或 "folder" 或"file path"。这意味着 foo
与 foo.txt
一样有效,与 path/to/foo.txt
一样有效(更多关于对象命名 here)。我们在文档中使用扩展名只是因为大多数开发人员都熟悉具有某些扩展名的文件,我们不想让路径看起来随意或像文件以外的东西。
为了搜索,GCS 在他们的 list
API (docs) 中有了前缀匹配的概念,这样你就可以查询诸如“给我所有前缀为 path/to/foo
的文件,如果 path/to/foo
和 path/to/foo.txt
都存在,则前缀为 return foo
和 foo.txt
。
Firebase 存储选择不公开列表 API 有几个原因,但主要是因为:
- 我们引入了类似 file/folder 的层次结构,这使得此功能的功能有所不同
- 当用户可能无法访问所有文件时,列出文件会出现问题(您 return 是部分文件集还是什么都没有?)
- 我们有一个 Realtime Database 可用于存储 URL 列表,这些 URL 列表可以轻松存储并在几毫秒内跨设备同步。
如果您决心这样做,可以使用 GCS list
API,或在服务器上使用 GCloud。
是否可以只通过名称搜索文件而不知道其扩展名(jpg 或 png)?
所有文档都使用 filename.extension.
从技术上讲,Google 云存储中的 "file" 只是一个对象,其名称可能包含看起来像 "file" 或 "folder" 或"file path"。这意味着 foo
与 foo.txt
一样有效,与 path/to/foo.txt
一样有效(更多关于对象命名 here)。我们在文档中使用扩展名只是因为大多数开发人员都熟悉具有某些扩展名的文件,我们不想让路径看起来随意或像文件以外的东西。
为了搜索,GCS 在他们的 list
API (docs) 中有了前缀匹配的概念,这样你就可以查询诸如“给我所有前缀为 path/to/foo
的文件,如果 path/to/foo
和 path/to/foo.txt
都存在,则前缀为 return foo
和 foo.txt
。
Firebase 存储选择不公开列表 API 有几个原因,但主要是因为:
- 我们引入了类似 file/folder 的层次结构,这使得此功能的功能有所不同
- 当用户可能无法访问所有文件时,列出文件会出现问题(您 return 是部分文件集还是什么都没有?)
- 我们有一个 Realtime Database 可用于存储 URL 列表,这些 URL 列表可以轻松存储并在几毫秒内跨设备同步。
如果您决心这样做,可以使用 GCS list
API,或在服务器上使用 GCloud。