Cloud Storage for Firebase przechowuje Twoje dane w zasobniku Google Cloud Storage – rozwiązaniu do przechowywania obiektów o rozmiarze exabajtów z wysoką dostępnością i globalną redundancją. Pakiet Firebase Admin SDK umożliwia bezpośredni dostęp do zasobów Cloud Storage z otoczeń z uprawnieniami. Następnie możesz używać interfejsów API Google Cloud Storage do manipulowania obiektami przechowywanymi w workach.
Za pomocą funkcji Admin SDK możesz też tworzyć adresy 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 SDK administratora 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ć gs://
ani żadnych innych prefiksów protokołów.
Jeśli na przykład adres URL zasobnika wyświetlany w konsoli Firebase to gs://PROJECT_ID.firebasestorage.app
, prześlij 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 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': '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 zasobach powiązanych z Twoimi 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ż uwierzytelniane za pomocą danych logowania użytych do zainicjowania aplikacji Firebase.
Używanie grup niestandardowych
Jeśli chcesz użyć zasobnika Cloud Storage innego niż domyślny opisany wcześniej w tym przewodniku lub użyć kilku zasobników Cloud 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 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łanie i pobieranie plików, zapoznaj się z dokumentacją i odwołaniami do interfejsu API bibliotek klientów Google Cloud Storage.