Google is committed to advancing racial equity for Black communities. See how.
Эта страница переведена с помощью Cloud Translation API.
Switch to English

Введение в Admin Cloud Storage API

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

Использовать сегмент по умолчанию

Вы можете указать имя сегмента по умолчанию при инициализации Admin SDK. Затем вы можете получить аутентифицированную ссылку на этот сегмент. Имя сегмента не должно содержать префиксов gs:// или других протоколов. Например, если URL-адрес gs://bucket-name.appspot.com , отображаемый в консоли Firebase, - gs://bucket-name.appspot.com , передайте строку bucket-name.appspot.com в Admin SDK.

Node.js

var admin = require("firebase-admin");

var serviceAccount = require("path/to/serviceAccountKey.json");

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    storageBucket: "<BUCKET_NAME>.appspot.com"
});

var bucket = admin.storage().bucket();

// 'bucket' is an object defined in the @google-cloud/storage library.
// See https://googlecloudplatform.github.io/google-cloud-node/#/docs/storage/latest/storage/bucket
// for more details.

Ява

FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json");

FirebaseOptions options = FirebaseOptions.builder()
    .setCredentials(GoogleCredentials.fromStream(serviceAccount))
    .setStorageBucket("<BUCKET_NAME>.appspot.com")
    .build();
FirebaseApp.initializeApp(options);

Bucket bucket = StorageClient.getInstance().bucket();

// 'bucket' is an object defined in the google-cloud-storage Java library.
// See http://googlecloudplatform.github.io/google-cloud-java/latest/apidocs/com/google/cloud/storage/Bucket.html
// for more details.

Python

import firebase_admin
from firebase_admin import credentials
from firebase_admin import storage

cred = credentials.Certificate('path/to/serviceAccountKey.json')
firebase_admin.initialize_app(cred, {
    'storageBucket': '<BUCKET_NAME>.appspot.com'
})

bucket = storage.bucket()

# 'bucket' is an object defined in the google-cloud-storage Python library.
# See https://googlecloudplatform.github.io/google-cloud-python/latest/storage/buckets.html
# for more details.

Идти

import (
	"context"
	"log"

	firebase "firebase.google.com/go/v4"
	"firebase.google.com/go/v4/auth"
	"google.golang.org/api/option"
)

config := &firebase.Config{
	StorageBucket: "<BUCKET_NAME>.appspot.com",
}
opt := option.WithCredentialsFile("path/to/serviceAccountKey.json")
app, err := firebase.NewApp(context.Background(), config, opt)
if err != nil {
	log.Fatalln(err)
}

client, err := app.Storage(context.Background())
if err != nil {
	log.Fatalln(err)
}

bucket, err := client.DefaultBucket()
if err != nil {
	log.Fatalln(err)
}
// 'bucket' is an object defined in the cloud.google.com/go/storage package.
// See https://godoc.org/cloud.google.com/go/storage#BucketHandle
// for more details.

Вы можете использовать ссылки на сегменты, возвращаемые Admin SDK, в сочетании с официальными клиентскими библиотеками Google Cloud Storage для загрузки, скачивания и изменения контента в сегментах, связанных с вашими проектами Firebase. Обратите внимание, что вам не нужно аутентифицировать библиотеки Google Cloud Storage при использовании Firebase Admin SDK. Ссылки на корзины, возвращаемые Admin SDK, уже аутентифицированы с использованием учетных данных, используемых для инициализации вашего приложения Firebase.

Используйте настраиваемые сегменты

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

Node.js

var bucket = admin.storage().bucket("my-custom-bucket");

Ява

Bucket bucket = StorageClient.getInstance().bucket("my-custom-bucket");

Python

bucket = storage.bucket('my-custom-bucket')

Идти

 bucket, err := client.Bucket("my-custom-bucket")

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

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

Node.js

var bucket = customApp.storage().bucket();

Ява

Bucket bucket = StorageClient.getInstance(customApp).bucket();

Python

bucket = storage.bucket(app=custom_app)

Идти

otherClient, err := otherApp.Storage(context.Background())
bucket, err := otherClient.Bucket("other-app-bucket")

Клиентские библиотеки Google Cloud Storage

Пакеты SDK администратора Firebase зависят от клиентских библиотек Google Cloud Storage для обеспечения доступа к облачному хранилищу. Ссылки на сегменты, возвращаемые Admin SDK, являются объектами, определенными в этих библиотеках. Обратитесь к документации и справочным материалам по API клиентских библиотек Google Cloud Storage, чтобы узнать, как использовать возвращенные ссылки на сегменты в таких случаях, как загрузка и скачивание файлов .