Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Начните работу с облачным хранилищем в Интернете

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

Предпосылки

Добавление и настройка Firebase SDK в приложение.

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

  1. На навигационной панели Firebase консоли , выберите пункт меню, затем нажмите кнопку Начать.

  2. Просмотрите сообщения о защите данных в облачном хранилище с помощью правил безопасности. В процессе разработки, рассмотрит создание ваших правил для публичного доступа .

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

    • Этот параметр расположение вашего проекта по умолчанию Google Cloud Platform (GCP) местоположение ресурса . Обратите внимание , что это место будет использоваться для GCP услуг в проекте , которые требуют настройки местоположения, в частности, ваше облако Firestore базой данных и App Engine приложение (которое требуется при использовании Виртуального планировщика).

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

    Если вы на план Blaze, вы можете создать несколько ведер , каждый со своим собственным адресом .

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

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

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

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

Добавьте URL-адрес корзины в приложение

Если он не включен уже, вам нужно добавить ведро URL Cloud Storage для вашего объекта конфигурации приложения Firebase в .

  1. Перейти к панели инструментов хранения в консоли Firebase .

  2. Перейдите на вкладку Files, а затем посмотреть в заголовке просмотра файлов.

  3. Скопируйте URL-адрес в буфер обмена. Это, как правило , в виде project-id .appspot.com .

  4. Для вашего firebaseConfig объекта в вашем приложении, добавьте storageBucket атрибут с ковшом URL:

    Веб-версия 9

    import { initializeApp } from "firebase/app";
    import { getStorage } from "firebase/storage";
    
    // Set the configuration for your app
    // TODO: Replace with your app's config object
    const firebaseConfig = {
      apiKey: '<your-api-key>',
      authDomain: '<your-auth-domain>',
      databaseURL: '<your-database-url>',
      storageBucket: '<your-storage-bucket-url>'
    };
    const firebaseApp = initializeApp(firebaseConfig);
    
    // Get a reference to the storage service, which is used to create references in your storage bucket
    const storage = getStorage(firebaseApp);

    Веб-версия 8

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

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

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

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

Веб-версия 9

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

Веб-версия 8

// 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://<your-cloud-storage-bucket>

Вы можете найти свой номер проекта , как описано в введении к проектам Firebase .

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

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

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

Веб-версия 9

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

Веб-версия 8

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

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