Wprowadzenie do interfejsu API Admin Cloud Storage

Cloud Storage dla Firebase przechowuje Twoje dane w zasobniku Google Cloud Storage — rozwiązaniu obiektowego przechowywania danych o skali eksabajtów, charakteryzującym się wysoką dostępnością i globalną nadmiarowością. Pakiet Firebase Admin SDK umożliwia bezpośredni dostęp do zasobników Cloud Storage z uprzywilejowanych środowisk. Następnie możesz używać interfejsów API Google Cloud Storage do manipulowania obiektami przechowywanymi w segmentach.

Pakiet Admin SDK umożliwia także tworzenie udostępnianych adresów URL, dzięki czemu użytkownicy mogą pobierać obiekty z Twoich zasobników.

Użyj domyślnego zasobnika

Możesz określić domyślną nazwę zasobnika podczas inicjowania pakietu Admin SDK. Następnie możesz pobrać uwierzytelnione odniesienie do tego segmentu. Nazwa zasobnika nie może zawierać gs:// ani żadnych innych przedrostków protokołu. Na przykład, jeśli adres URL zasobnika wyświetlany w konsoli Firebase to gs://bucket-name.appspot.com , przekaż ciąg bucket-name.appspot.com do pakietu Admin SDK.

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.

Jawa

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.

Pyton

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.

Iść

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 oficjalnymi bibliotekami klienta Google Cloud Storage 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ć bibliotek Google Cloud Storage. Odniesienia do zasobników zwrócone przez pakiet Admin SDK są już uwierzytelnione przy użyciu poświadczeń użytych do zainicjowania aplikacji Firebase.

Użyj niestandardowych zasobników

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

Node.js

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

Jawa

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

Pyton

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

Iść

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

Użyj niestandardowej aplikacji Firebase

Jeśli tworzysz bardziej skomplikowaną aplikację, która współdziała z wieloma aplikacjami Firebase , możesz uzyskać dostęp do zasobników Cloud Storage powiązanych z konkretną aplikacją Firebase w następujący sposób:

Node.js

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

Jawa

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

Pyton

bucket = storage.bucket(app=custom_app)

Iść

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

Uzyskaj udostępniany adres URL pobierania

Za pomocą pakietu Admin SDK możesz wygenerować niegasnący adres URL pobierania plików przechowywanych w zasobnikach. Każda osoba posiadająca 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 zależą od bibliotek klienckich Google Cloud Storage, aby zapewnić dostęp do Cloud Storage. Odniesienia do zasobników zwrócone przez pakiet Admin SDK to obiekty zdefiniowane w tych bibliotekach. Zapoznaj się z dokumentacją i odniesieniami do interfejsów API bibliotek klienckich Google Cloud Storage, aby dowiedzieć się, jak używać zwróconych odwołań do zasobników w przypadkach takich jak przesyłanie i pobieranie plików.