開始使用 Cloud Storage 網頁版

Cloud Storage for Firebase 可讓您上傳及分享使用者原創內容 (例如圖片和影片),進而在應用程式中建構互動式多媒體內容。您的資料會儲存在 Google Cloud Storage 值區。這是 EB 規模的物件儲存解決方案,具備高可用性和全球備援功能。Cloud Storage for Firebase 可讓您直接從行動裝置和網路瀏覽器安全上傳這些檔案,輕鬆處理不穩的網路。

先備知識

如果您尚未安裝 Firebase JS SDK 並初始化 Firebase,請先完成這項操作。

建立預設的 Cloud Storage 值區

  1. Firebase 控制台的導覽窗格中,選取「Storage」(儲存空間),然後按一下「Get started」(開始使用)

  2. 查看關於使用安全性規則保護 Cloud Storage 資料的訊息。在開發期間,建議您設定公開存取規則

  3. 選取預設 Cloud Storage 值區的位置

    • 此位置設定是您專案的預設 Google Cloud Platform (GCP) 資源位置。請注意,這個位置將用於專案中需要位置設定的 GCP 服務,具體而言是 Cloud Firestore 資料庫和 App Engine 應用程式 (若使用 Cloud Scheduler)。

    • 如果無法選取位置,表示專案已有預設的 GCP 資源位置。可在建立專案期間或在設定需要位置設定的其他服務時設定。

    如果您使用的是 Blaze 方案,可以建立多個值區,每個值區都有專屬的位置

  4. 點選「完成」

設定公開存取權

Cloud Storage for Firebase 提供宣告規則語言,可讓您定義資料的結構、建立索引的方式,以及讀取和寫入資料的時機。根據預設,Cloud Storage 的讀取和寫入存取權會受到限制,因此只有通過驗證的使用者才能讀取或寫入資料。如要在不設定驗證的情況下開始使用,您可以設定公開存取的規則

這會導致任何人都能使用 Cloud Storage,即使是未使用應用程式的人也不例外,因此設定驗證時,請務必再次限制 Cloud Storage。

在應用程式中新增值區網址

如果您尚未提供 Cloud Storage 值區網址,請將網址新增到 Firebase 應用程式的設定物件

  1. 前往 Firebase 控制台中的儲存空間資訊主頁。

  2. 按一下「Files」分頁標籤,然後查看檔案檢視器的標頭。

  3. 將網址複製到剪貼簿。這個引數通常格式為 project-id.appspot.com

  4. 如要在應用程式中使用 firebaseConfig 物件,請使用值區網址新增 storageBucket 屬性:

網頁模組 API

import { initializeApp } from "firebase/app";
import { getStorage } from "firebase/storage";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
  storageBucket: ''
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);


// Initialize Cloud Storage and get a reference to the service
const storage = getStorage(app);

網路命名空間 API

import firebase from "firebase/app";
import "firebase/compat/storage";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
  storageBucket: '[your-storage-bucket-url]'
};

// Initialize Firebase
firebase.initializeApp(firebaseConfig);


// Initialize Cloud Storage and get a reference to the service
const storage = firebase.storage();

您現在可以開始使用 Cloud Storage 了!

下一步?瞭解如何建立 Cloud Storage 參考資料

進階設定

以下列舉幾個需要額外設定的用途:

如果您的使用者遍布世界各地,並想將他們的資料儲存在鄰近位置,第一種使用情境會是最理想的做法。舉例來說,您可以建立美國、歐洲和亞洲的值區,為這些地區的使用者儲存資料以縮短延遲時間。

如果資料擁有不同的存取模式,第二個用途就十分有用。例如:您可以設定多地區或地區值區來儲存相片或其他經常存取的內容,以及設定近線或 Coldline 值區,儲存使用者備份或其他不常存取的內容。

在這些用途中,建議您使用多個 Cloud Storage 值區

第三種用途是建構應用程式 (例如 Google 雲端硬碟),讓使用者擁有多個帳戶登入 (例如個人帳戶和公司帳戶) 時。您可以使用自訂 Firebase 應用程式執行個體來驗證其他帳戶。

使用多個 Cloud Storage 值區

如果您想使用上述預設以外的 Cloud Storage 值區,或是在單一應用程式中使用多個 Cloud Storage 值區,您可以建立參照自訂值區的 firebase.storage 執行個體:

網頁模組 API

import { getApp } from "firebase/app";
import { getStorage } from "firebase/storage";

// Get a non-default Storage bucket
const firebaseApp = getApp();
const storage = getStorage(firebaseApp, "gs://my-custom-bucket");

網路命名空間 API

// 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 service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://<your-cloud-storage-bucket>

您可以按照 Firebase 專案簡介一文的說明尋找專案編號。

這不會影響新建立的值區,因為這些值區的預設存取權控管已設為允許 Firebase。這只是暫時的措施,日後會自動執行。

使用自訂 Firebase 應用程式

如果您使用自訂 firebase.app.App 建構更複雜的應用程式,可以建立透過該應用程式初始化的 firebase.storage.Storage 執行個體:

網頁模組 API

import { getStorage } from "firebase/storage";

// Get the default bucket from a custom firebase.app.App
const storage1 = getStorage(customApp);

// Get a non-default bucket from a custom firebase.app.App
const storage2 = getStorage(customApp, "gs://my-custom-bucket");

網路命名空間 API

// 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");

後續步驟