适用于网页的使用入门

使用 Cloud Storage for Firebase,您可以上传和共享用户生成的内容(如图片和视频),以便将富媒体内容融入到您的应用中。您的数据存储在 Google Cloud Storage 存储分区中,这是一种 EB 级对象存储解决方案,不仅可用性高,还能实现全局冗余。使用 Cloud Storage,您可以直接从移动设备和网络浏览器安全上传这些文件,轻松应对网络时好时坏的问题。

前提条件

  1. 在您的应用中添加并配置 Firebase SDK

设置公共访问权限

Cloud Storage for Firebase 提供了一种声明式规则语言,可用于定义数据的组织结构方式、将数据编入索引的方式,以及何时可以读取和写入数据。默认情况下,对 Storage 的读写权限是有限制的,只有通过身份验证的用户才能读写数据。要在不设置身份验证的情况下开始使用 Storage,您可以将您的规则配置为允许公共访问

这会使得 Storage 向所有人开放,包括不使用您的应用的用户,因此在设置身份验证时,请务必重新限制对 Storage 的访问权限。

设置 Cloud Storage

您必须将您的存储分区添加至 Firebase SDK 配置。

访问 Firebase 控制台的“Storage”(存储)页面,在文件标签下的文件查看器顶部找到 Storage 存储分区网址。然后将 storageBucket 属性添加到您的 config 对象中:

  // Set the configuration for your app
  // TODO: Replace with your project's config object
  var config = {
    apiKey: '<your-api-key>',
    authDomain: '<your-auth-domain>',
    databaseURL: '<your-database-url>',
    storageBucket: '<your-storage-bucket>'
  };
  firebase.initializeApp(config);

  // Get a reference to the storage service, which is used to create references in your storage bucket
  var storage = firebase.storage();

现在可以开始使用 Cloud Storage 了!

首先,我们来了解如何创建 Cloud Storage 引用

高级设置

以下几种使用情形需要进行额外的设置:

如果您的用户遍布世界各地,并且您希望将他们的数据存储在各自所在地附近,则非常适合参考第一种使用情形。例如,您可以在美国、欧洲和亚洲创建存储分区,用于为这些区域的用户存储数据,以减少延迟时间。

如果您的数据有不同的访问模式,则适合第二种使用情形。例如,您可以设置一个多区域级或区域级存储分区来存储照片或其他经常访问的内容,并设置一个 Nearline 或 Coldline 存储分区以存储用户备份或其他不常访问的内容。

在这两种使用情形下,您都需要使用多个存储分区

如果您要构建一个允许用户登录多个帐号(例如,一个个人帐号和一个工作帐号)的应用(例如 Google 云端硬盘),则适合第三种使用情形。您可以使用自定义 Firebase 应用实例来对额外的每个帐号进行身份验证。

使用多个存储分区

如果要使用上文提供的默认存储分区以外的存储分区,或在单个应用中使用多个存储分区,则可以创建一个引用您的自定义存储分区的 firebase.storage 实例:

// Get a non-default Storage bucket
var storage = firebase.app().storage("gs://my-custom-bucket");

使用导入的存储分区

将现有 Cloud Storage 存储分区导入 Firebase 时,您必须使用 Google Cloud SDK 中包含的 gsutil 工具授予 Firebase 访问这些文件的权限:

gsutil -m acl ch -r -u firebase-storage@system.gserviceaccount.com:O gs://<your-cloud-storage-bucket>

这不会影响新建的存储分区,因为其已默认设置为允许 Firebase 访问。这是一项临时措施,将来会自动执行。

使用自定义 Firebase App

如果您要使用自定义 firebase.app.App 构建更复杂的应用,可以创建使用该应用初始化的 firebase.storage.Storage 实例:

// Get the default bucket from a custom firebase.app.App
var storage = customApp.storage();

// Get a non-default bucket from a custom firebase.app.App
var storage = customApp.storage("gs://my-custom-bucket");

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面