Wprowadzenie do Cloud Storage w przeglądarce

Cloud Storage for Firebase umożliwia przesyłanie i udostępnianie treści generowanych przez użytkowników, takich jak obrazy i filmy, co pozwala tworzyć w aplikacjach treści multimedialne. Twoje dane są przechowywane w zasobnikuGoogle Cloud Storage, czyli rozwiązaniu do przechowywania obiektów o skali eksabajtów, które zapewnia wysoką dostępność i globalną redundancję. Cloud Storage for Firebase umożliwia bezpieczne przesyłanie tych plików bezpośrednio z urządzeń mobilnych i przeglądarek internetowych, a także łatwe radzenie sobie z niestabilnymi sieciami.

Zanim zaczniesz

  1. Jeśli jeszcze tego nie zrobiono, zapoznaj się z przewodnikiem dla początkujących dotyczącym aplikacji internetowych. Obejmuje to m.in.:

    • Tworzenie projektu Firebase.

    • zarejestrować aplikację internetową w projekcie i połączyć ją z Firebase, dodając do niej pakiet Firebase JS SDK i obiekt konfiguracji Firebase.

  2. Sprawdź, czy Twój projekt Firebase korzysta z abonamentu Blaze z płatnością według zużycia zasobów. Jeśli dopiero zaczynasz korzystać z Firebase i Google Cloud, sprawdź, czy kwalifikujesz się do otrzymania środków w wysokości 300 USD.

Tworzenie domyślnego zasobnika Cloud Storage

  1. W panelu nawigacyjnym Firebase konsoli wybierz Przechowywanie.

    Jeśli Twój projekt nie korzysta jeszcze z abonamentu Blaze z płatnością według wykorzystania, pojawi się prośba o jego przeniesienie.

  2. Kliknij Rozpocznij.

  3. Wybierz lokalizację domyślnego zasobnika.

  4. Skonfiguruj Firebase Security Rules dla domyślnego zasobnika. Podczas tworzenia aplikacji rozważ skonfigurowanie reguł dostępu publicznego.

  5. Kliknij Gotowe.

Zasobnik możesz teraz wyświetlić na Cloud Storage karcie Pliki w konsoli Firebase. Domyślny format nazwy kosza to: PROJECT_ID.firebasestorage.app.

Konfigurowanie dostępu publicznego

Cloud Storage for Firebase udostępnia deklaratywny język reguł, który umożliwia określenie struktury danych, sposobu ich indeksowania oraz tego, kiedy można je odczytywać i zapisywać. Domyślnie dostęp do odczytu i zapisu w Cloud Storage jest ograniczony, więc tylko uwierzytelnieni użytkownicy mogą odczytywać lub zapisywać dane. Aby rozpocząć bez konfigurowania Authentication, możesz skonfigurować reguły dostępu publicznego.

Sprawia to, że Cloud Storage jest dostępny dla wszystkich, nawet dla osób, które nie korzystają z Twojej aplikacji. Pamiętaj, aby ponownie ograniczyć dostęp do Cloud Storage po skonfigurowaniu uwierzytelniania.

Dodaj pakiet Cloud Storage JS SDK i zainicjuj Cloud Storage

Podczas inicjowania pakietu SDK JavaScript musisz podać Cloud Storagenazwę zasobnika.

Nazwę kosza Cloud Storage znajdziesz na Cloud Storage karcie Pliki w konsoli Firebase. W zależności od tego, kiedy został utworzony domyślny zasobnik, jego nazwa będzie miała jeden z tych formatów:

  • PROJECT_ID.firebasestorage.app (domyślny zasobnik utworzony 30 października 2024 r. lub później 30 października 2024 r.)
  • PROJECT_ID.appspot.com (domyślny kosz utworzony przed 30 października 2024 r.)

Zainicjuj pakiet SDK za pomocą tego fragmentu kodu:

Web

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: 'BUCKET_NAME'
};

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


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

Web

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: 'BUCKET_NAME'
};

// Initialize Firebase
firebase.initializeApp(firebaseConfig);


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

Możesz już zacząć korzystać z Cloud Storage.

Co dalej? Dowiedz się, jak utworzyć Cloud Storage referencję.

Konfiguracja zaawansowana

W kilku przypadkach użycia wymagana jest dodatkowa konfiguracja:

Pierwszy przypadek użycia jest idealny, jeśli masz użytkowników na całym świecie i chcesz przechowywać ich dane w pobliżu ich lokalizacji. Możesz na przykład utworzyć zasobniki w Stanach Zjednoczonych, Europie i Azji, aby przechowywać dane użytkowników z tych regionów i zmniejszyć opóźnienia.

Drugi przypadek użycia jest przydatny, jeśli masz dane o różnych wzorcach dostępu. Możesz na przykład skonfigurować zasobnik wieloregionowy lub regionalny, w którym będą przechowywane zdjęcia lub inne często używane treści, oraz zasobnik Nearline lub Coldline, w którym będą przechowywane kopie zapasowe użytkowników lub inne rzadko używane treści.

W obu tych przypadkach warto użyć wielu Cloud Storagezasobników.

Trzeci przypadek użycia jest przydatny, jeśli tworzysz aplikację, taką jak Dysk Google, która umożliwia użytkownikom korzystanie z wielu zalogowanych kont (np. konta osobistego i służbowego). Do uwierzytelniania każdego dodatkowego konta możesz używać niestandardowej instancji aplikacji Firebase.

Korzystanie z wielu zasobników Cloud Storage

Jeśli chcesz użyć Cloud Storage zasobnika innego niż domyślny zasobnik opisany wcześniej w tym przewodniku lub użyć wielu Cloud Storage zasobników w jednej aplikacji, możesz utworzyć instancję firebase.storage, która odwołuje się do Twojego niestandardowego zasobnika:

Web

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

Web

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

Praca z zaimportowanymi zasobnikami

Podczas importowania do Firebase istniejącego zasobnika Cloud Storage musisz przyznać Firebase uprawnienia dostępu do tych plików za pomocą narzędzia gsutil, które jest częścią Google Cloud SDK:

gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://BUCKET_NAME

Numer projektu znajdziesz w wprowadzeniu do projektów Firebase.

Nie ma to wpływu na nowo utworzone zasobniki, ponieważ domyślna kontrola dostępu jest w nich ustawiona tak, aby zezwalać na dostęp Firebase. Jest to środek tymczasowy, który w przyszłości będzie stosowany automatycznie.

Używanie niestandardowej aplikacji Firebase

Jeśli tworzysz bardziej skomplikowaną aplikację przy użyciu niestandardowego elementu firebase.app.App, możesz utworzyć instancję elementu firebase.storage.Storage zainicjowaną za pomocą tej aplikacji:

Web

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

Web

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

Dalsze kroki