Firebase 存储使用 Google Cloud Platform 进行存储。GCP 允许文件上的“公开共享”选项能够在浏览器中查看此类文件。
在这里,您可以通过 GCP 控制台上的 GUI 查看可用的选项。
通过 Firebase 上传文件时是否可以启用公共选项?
编辑:我已经启用了对整个存储桶的公开阅读,尽管它并不理想。
gsutil defacl ch -u allUsers:R gs://<bucket>
Firebase 存储使用 Google Cloud Platform 进行存储。GCP 允许文件上的“公开共享”选项能够在浏览器中查看此类文件。
在这里,您可以通过 GCP 控制台上的 GUI 查看可用的选项。
通过 Firebase 上传文件时是否可以启用公共选项?
编辑:我已经启用了对整个存储桶的公开阅读,尽管它并不理想。
gsutil defacl ch -u allUsers:R gs://<bucket>
使用 Firebase 存储,您将获得两个可用于表示文件的 URL:
// "Private" internal URL, only accessible through Firebase Storage API
// This is protected by Firebase Storage Security Rules & Firebase Auth
gs://bucket/object
// "Public" unguessable URL, accessible by anyone with the link
// This is secured because that token is *very* hard for someone to guess
https://firebasestorage.googleapis.com/v0/bucket/object?alt=media&token=<token>
第二个选项允许您与受信任的个人共享这个公开但无法猜测的 URL,并允许他们在未经 Firebase 身份验证或使用您的应用程序的情况下访问内容——想想与 Google 照片共享家庭照片。除非您希望使用干净的 URL 进行公开共享,否则这种行为可能已经足够了。
正如您所提到的,第三个选项涉及直接访问 Google Cloud Storage 控制台并使用干净的 URL 公开文件,而 Firebase Storage 客户端无法使用该 URL。这将添加第三个 URL:
// "Public" clean URL, accessible and guessable
// Not secure, typically used for public, static content
https://storage.googleapis.com/v0/bucket/object
一般来说,除非您希望人们知道和猜测您的内容(托管静态内容、网站文件等),否则我不会通过 GCS 公开共享,而且几乎肯定不会将默认 ACL 设置为始终公开(如果您添加新功能并且不再需要此行为会发生什么,您可能会忘记再次将其关闭...)。