Wprowadzenie do interfejsu Admin Cloud Storage API

Cloud Storage dla Firebase przechowuje Twoje dane w zasobniku Google Cloud Storage – rozwiązaniu obiektowej pamięci masowej o pojemności eksabajtowej o wysokiej dostępności i globalnej nadmiarowości. Pakiet Firebase Admin SDK umożliwia bezpośredni dostęp do zasobników Cloud Storage ze środowisk o podwyższonych uprawnieniach. Następnie za pomocą interfejsów Google Cloud Storage API możesz manipulować obiektami przechowywanymi w zasobnikach.

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

Użyj domyślnego zasobnika

Podczas inicjowania pakietu Admin SDK możesz określić domyślną nazwę zasobnika. Potem możesz pobrać uwierzytelnione odwołanie do tego zasobnika. Nazwa zasobnika nie może zawierać prefiksu gs:// ani żadnych innych prefiksów protokołu. Jeśli na przykład 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.

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.

Odwołań do zasobników zwracanych przez pakiet Admin SDK możesz używać w połączeniu z oficjalnymi bibliotekami klienta Google Cloud Storage, aby przesyłać, pobierać i modyfikować treści w zasobnikach powiązanych z Twoimi projektami Firebase. Pamiętaj, że gdy korzystasz z pakietu Firebase Admin SDK, nie musisz uwierzytelniać bibliotek Google Cloud Storage. Odwołania do zasobników zwrócone przez pakiet Admin SDK są już uwierzytelnione za pomocą danych logowania użytych do zainicjowania aplikacji Firebase.

Użyj zasobników niestandardowych

Jeśli chcesz użyć innego zasobnika Cloud Storage niż podany powyżej lub użyć wielu zasobników Cloud Storage w 1 aplikacji, możesz pobrać odniesienie do zasobnika niestandardowego w następujący sposób:

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 złożoną aplikację, która współpracuje z wieloma aplikacjami Firebase, dostęp do zasobników Cloud Storage powiązanych z określoną aplikacją Firebase możesz uzyskać 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")

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

Za pomocą pakietu Admin SDK możesz wygenerować adres URL do pobierania plików przechowywanych w zasobnikach. Każdy, kto zna ten URL, ma stały 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 bibliotek klienta Google Cloud Storage, aby zapewnić dostęp do Cloud Storage. Odwołania do zasobnika zwracane przez pakiet Admin SDK 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łanie lub pobieranie plików, zapoznaj się z dokumentacją i materiałami referencyjnymi interfejsu API bibliotek klienta Google Cloud Storage.