Wprowadzenie do interfejsu Cloud Storage API dla administratorów

Cloud Storage for Firebase przechowuje dane w Google Cloud Storage zasobniku – rozwiązaniu do przechowywania obiektów o skali eksabajtów, które charakteryzuje się wysoką dostępnością i globalną redundancją. Pakiet Firebase Admin SDK umożliwia bezpośredni dostęp do Twoich Cloud Storage zasobników z uprzywilejowanych środowisk. Następnie możesz używać Google Cloud Storage interfejsów API do manipulowania obiektami przechowywanymi w zasobnikach.

Admin SDK umożliwia też tworzenie adresów URL, które można udostępniać, aby użytkownicy mogli pobierać obiekty z Twoich zasobników.

Upewnij się, że Twój projekt w Firebase jest objęty abonamentem Blaze z płatnością według wykorzystania. Jest to wymagane, aby korzystać z Cloud Storage for Firebase. Jeśli dopiero zaczynasz korzystać z Firebase i Google Cloud, sprawdź, czy kwalifikujesz się do bezpłatnego okresu próbnego o wartości 300 USD.

Używanie domyślnego zasobnika

Podczas inicjowania pakietu Admin SDK możesz określić domyślną nazwę zasobnika. Następnie możesz pobrać uwierzytelnione odniesienie do tego zasobnika.

Nazwa zasobnika nie może zawierać prefiksu gs:// ani żadnych innych prefiksów protokołów. Jeśli na przykład adres URL zasobnika wyświetlany w Firebase konsoli to gs://PROJECT_ID.firebasestorage.app, przekaż do pakietu Admin SDK ciąg znaków PROJECT_ID.firebasestorage.app.

Node.js

const { initializeApp, cert } = require('firebase-admin/app');
const { getStorage } = require('firebase-admin/storage');

const serviceAccount = require('./path/to/serviceAccountKey.json');

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

const bucket = getStorage().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.

Java

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 https://cloud.google.com/java/docs/reference/google-cloud-storage/latest/com.google.cloud.storage.Bucket
// 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': 'PROJECT_ID.firebasestorage.app'
})

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.

Go

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.

Odniesienia do zasobników zwracane przez pakiet Admin SDK możesz używać razem z oficjalnymi Google Cloud Storage bibliotekami klienta do przesyłania, pobierania i modyfikowania treści w zasobnikach powiązanych z Twoimi projektami Firebase. Pamiętaj, że podczas korzystania z pakietu Firebase Admin SDK nie musisz uwierzytelniać Google Cloud Storage bibliotek. Odniesienia do zasobników zwracane przez pakiet Admin SDK są już uwierzytelnione za pomocą danych logowania użytych do zainicjowania aplikacji w Firebase.

Używanie niestandardowych zasobników

Jeśli chcesz używać zasobnika Cloud Storage innego niż domyślny zasobnik opisany wcześniej w tym przewodniku lub używać kilku zasobników Cloud Storage w jednej aplikacji, możesz pobrać odniesienie do niestandardowego zasobnika:

Node.js

const bucket = getStorage().bucket('my-custom-bucket');

Java

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

Python

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

Go

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

Używanie niestandardowej aplikacji w Firebase

Jeśli tworzysz bardziej złożoną aplikację, która wchodzi w interakcję z wieloma aplikacjami w Firebase, możesz uzyskać dostęp do Cloud Storage zasobników powiązanych z konkretną aplikacją w Firebase w ten sposób:

Node.js

const bucket = getStorage(customApp).bucket();

Java

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

Python

bucket = storage.bucket(app=custom_app)

Go

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

Uzyskiwanie adresu URL do pobierania, który można udostępniać

Za pomocą Admin SDK możesz wygenerować nieograniczony czasowo adres URL do pobierania plików przechowywanych w Twoich zasobnikach. Każdy, kto ma ten adres URL, może na stałe uzyskać dostęp do pliku.

Node.js

const { getStorage, getDownloadURL } = require('firebase-admin/storage');

const fileRef = getStorage().bucket('my-bucket').file('my-file');
const downloadURL= await getDownloadURL(fileRef);

Biblioteki klienta Google Cloud Storage

Pakiety Firebase Admin SDK korzystają z Google Cloud Storage bibliotek klienta aby zapewnić Cloud Storage dostęp. Odniesienia do zasobników zwracane przez pakiet Admin SDK to obiekty zdefiniowane w tych bibliotekach. Aby dowiedzieć się, jak używać zwracanych odniesień do zasobników w przypadkach użycia takich jak przesyłanie i pobieranie plików, zapoznaj się z dokumentacją i dokumentacją API bibliotek klienta Google Cloud Storage.