Wprowadzenie do interfejsu Cloud Storage API dla administratorów

Cloud Storage for Firebase przechowuje dane w Google Cloud Storage zasobniku, czyli rozwiązaniu do przechowywania obiektów o skali eksabajtów, które zapewnia wysoką dostępność i globalną redundancję. Pakiet Firebase Admin SDK umożliwia bezpośredni dostęp do zasobników Cloud Storage ze środowisk z podniesionymi uprawnieniami. Następnie możesz używać Google Cloud Storageinterfejsó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.

Używanie domyślnego zasobnika

Podczas inicjowania pakietu Admin SDK możesz określić domyślną nazwę zasobnika. Następnie możesz pobrać uwierzytelnione odwołanie 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 kosza wyświetlany w Firebase konsoli to gs://PROJECT_ID.firebasestorage.app, przekaż ciąg znaków PROJECT_ID.firebasestorage.app 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 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.

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

Używanie niestandardowych przedziałów

Jeśli chcesz użyć Cloud Storagezasobnika innego niż domyślnyCloud Storage opisany wcześniej w tym przewodniku lub użyć kilku Cloud StoragezasobnikówCloud Storage w jednej aplikacji, możesz pobrać odwołanie do zasobnika niestandardowego:

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 Firebase

Jeśli tworzysz bardziej złożoną aplikację, która wchodzi w interakcję z wieloma aplikacjami Firebase, możesz uzyskać dostęp do Cloud Storagezasobników powiązanych z określoną 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")

Pobieranie adresu URL do udostępniania

Możesz użyć Admin SDK, aby wygenerować nieekspirujący adres URL do pobierania plików przechowywanych w Twoich zasobnikach. Każda osoba, która 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);

Google Cloud Storage biblioteki klienta,

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