Wprowadzenie do interfejsu Admin Cloud Storage API

Cloud Storage for Firebase przechowuje Twoje dane w Zasobnik Google Cloud Storage – rozwiązanie do przechowywania obiektów w skali eksabajtów z wysoką dostępnością i globalną nadmiarowość. Pakiet SDK Firebase Admin zapewnia bezpośredni dostęp do Cloud Storage zasobników ze środowisk z podwyższonymi uprawnieniami. Następnie możesz używać interfejsów Google Cloud StorageAPI do manipulowania obiektami przechowywanymi w workach.

Użyj też opcji Admin SDK, aby utworzyć adresy URL do udostępniania, dzięki którym użytkownicy będą mogli pobierać obiekty z Twoich zasobników.

Użyj zasobnika domyślnego

Podczas inicjowania pakietu SDK administratora możesz określić domyślną nazwę zasobnika. Potem może pobrać uwierzytelnione odwołanie do tego zasobnika. Nazwa zasobnika nie może zawierać gs:// ani żadnych innych prefiksów protokołów. Jeśli na przykład adres URL zasobnika wyświetlany w konsoli Firebase to gs://bucket-name.appspot.com, prześlij ciąg znaków bucket-name.appspot.com do pakietu SDK Admin.

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 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.

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.

Możesz używać odwołań do zasobników zwracanych przez pakiet Admin SDK w połączeniu z: urzędnik Google Cloud Storage biblioteki klienta przesyłać, pobierać i modyfikować treści w zasobnikach powiązanych z Projekty Firebase. Pamiętaj, że nie musisz się uwierzytelniać. Google Cloud Storage bibliotek, gdy korzystasz z pakietu Firebase Admin SDK. Zasobnik odwołania zwrócone przez pakiet Admin SDK są już uwierzytelnione za pomocą dane logowania użyte do zainicjowania aplikacji Firebase.

Użyj zasobników niestandardowych

Jeśli chcesz użyć zasobnika Cloud Storage innego niż domyślny podane powyżej lub użyć kilku zasobników Cloud Storage w jednej aplikacji, możesz pobrać odniesienie do zasobnika niestandardowego, jak pokazano poniżej:

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żyj niestandardowej aplikacji Firebase

Jeśli tworzysz bardziej skomplikowaną aplikację, która współpracuje z kilkoma aplikacjami Firebase, możesz uzyskać dostęp do zasobników Cloud Storage powiązanych z konkretną aplikacją 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 pobrania, który można udostępniać

Za pomocą Admin SDK możesz wygenerować niewygasający adres URL do pobierania plików przechowywanych w Twoich zasobnikach. Każdy, kto ma ten adres URL, może na stałe otworzyć plik.

Node.js

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

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

Google Cloud Storage bibliotek klienta

Pakiety Firebase Admin SDK korzystają z bibliotek klienta Google Cloud Storage, aby uzyskać dostęp Cloud Storage. Odwołania do zasobników zwracane przez pakiet SDK administracyjnego to obiekty zdefiniowane w tych bibliotekach. Aby dowiedzieć się, jak używać zwróconych odwołań do zasobników w przypadkach użycia takich jak przesyłaniepobieranie plików, zapoznaj się z dokumentacją i odwołaniami do interfejsu API bibliotek klientów Google Cloud Storage.