Начало работы с Cloud Storage в Интернете

Cloud Storage for Firebase позволяет вам загружать и делиться пользовательским контентом, таким как изображения и видео, что позволяет вам встраивать в свои приложения богатый медиаконтент. Ваши данные хранятся в контейнере Google Cloud Storage — решении для хранения объектов в масштабе экзабайт с высокой доступностью и глобальной избыточностью. Cloud Storage for Firebase позволяет вам безопасно загружать эти файлы напрямую с мобильных устройств и веб-браузеров, легко справляясь с нестабильными сетями.

Прежде чем начать

  1. Если вы еще этого не сделали, убедитесь, что вы завершили руководство по началу работы с веб-приложениями . Это включает в себя:

    • Создание проекта Firebase.

    • Регистрация вашего веб-приложения в проекте и подключение вашего приложения к Firebase путем добавления Firebase JS SDK и объекта конфигурации Firebase в ваше приложение.

  2. Убедитесь, что ваш проект Firebase находится на тарифном плане Blaze с оплатой по мере использования . Если вы новичок в Firebase и Google Cloud, проверьте, имеете ли вы право на кредит в размере 300 долларов .

Создайте контейнер Cloud Storage по умолчанию

  1. На панели навигации консоли Firebase выберите Хранилище .

    Если ваш проект еще не включен в тарифный план Blaze с оплатой по факту использования, вам будет предложено обновить его.

  2. Нажмите « Начать» .

  3. Выберите местоположение для контейнера по умолчанию.

  4. Настройте Firebase Security Rules для вашего контейнера по умолчанию. Во время разработки рассмотрите возможность настройки правил для публичного доступа .

  5. Нажмите Готово .

Теперь вы можете просмотреть контейнер на вкладке Cloud Storage Files консоли Firebase . Формат имени контейнера по умолчанию: PROJECT_ID .firebasestorage.app .

Настроить публичный доступ

Cloud Storage for Firebase предоставляет декларативный язык правил, который позволяет вам определять, как должны быть структурированы ваши данные, как они должны быть индексированы и когда ваши данные могут быть прочитаны и записаны. По умолчанию доступ для чтения и записи в Cloud Storage ограничен, поэтому только аутентифицированные пользователи могут читать или записывать данные. Чтобы начать работу без настройки Authentication , вы можете настроить правила для публичного доступа .

Это делает Cloud Storage открытым для всех, даже для людей, не использующих ваше приложение, поэтому не забудьте снова ограничить свое Cloud Storage при настройке аутентификации.

Добавьте Cloud Storage JS SDK и инициализируйте Cloud Storage .

При инициализации JavaScript SDK необходимо указать имя контейнера Cloud Storage .

Имя контейнера Cloud Storage можно найти на вкладке Cloud Storage Files консоли Firebase . В зависимости от того, когда вы создали контейнер по умолчанию, имя контейнера будет в одном из следующих форматов:

  • PROJECT_ID .firebasestorage.app (корзина по умолчанию создана 30 октября 2024 г. или позже )
  • PROJECT_ID .appspot.com (корзина по умолчанию, созданная до 30 октября 2024 г. )

Инициализируйте SDK, используя следующий фрагмент кода:

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

Вы готовы начать использовать Cloud Storage !

Следующий шаг? Узнайте, как создать ссылку на Cloud Storage .

Расширенная настройка

Есть несколько вариантов использования, требующих дополнительной настройки:

Первый вариант использования идеален, если у вас есть пользователи по всему миру, и вы хотите хранить их данные рядом с ними. Например, вы можете создать контейнеры в США, Европе и Азии для хранения данных пользователей в этих регионах, чтобы сократить задержку.

Второй вариант использования полезен, если у вас есть данные с разными шаблонами доступа. Например: вы можете настроить мультирегиональный или региональный контейнер, который хранит изображения или другой часто используемый контент, и nearline или coldline контейнер, который хранит резервные копии пользователей или другой редко используемый контент.

В любом из этих случаев вам понадобится использовать несколько контейнеров Cloud Storage .

Третий вариант использования полезен, если вы создаете приложение, например Google Drive, которое позволяет пользователям иметь несколько учетных записей для входа (например, личную учетную запись и рабочую учетную запись). Вы можете использовать пользовательский экземпляр Firebase App для аутентификации каждой дополнительной учетной записи.

Используйте несколько Cloud Storage

Если вы хотите использовать контейнер Cloud Storage отличный от контейнера по умолчанию, описанного ранее в этом руководстве, или использовать несколько контейнеров Cloud Storage в одном приложении, вы можете создать экземпляр firebase.storage , который ссылается на ваш пользовательский контейнер:

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

Работа с импортными ковшами

При импорте существующего контейнера Cloud Storage в Firebase вам придется предоставить Firebase возможность доступа к этим файлам с помощью инструмента gsutil , включенного в Google Cloud SDK :

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

Номер вашего проекта можно найти, как описано во введении к проектам Firebase .

Это не влияет на вновь созданные бакеты, поскольку у них есть контроль доступа по умолчанию, разрешающий Firebase. Это временная мера, и она будет выполняться автоматически в будущем.

Используйте пользовательское приложение Firebase

Если вы создаете более сложное приложение с использованием пользовательского firebase.app.App , вы можете создать экземпляр firebase.storage.Storage , инициализированный с этим приложением:

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

Следующие шаги