Cloud Storage for Firebase przechowuje Twoje dane w zasobniku Google Cloud Storage – rozwiązaniu obiektowej pamięci masowej w skali eksabajtowej o wysokiej dostępności i globalnej nadmiarowości. Pakiet SDK Firebase Admin umożliwia bezpośredni dostęp do zasobów Cloud Storage z otoczeń z uprawnieniami. Następnie możesz używać interfejsów Google Cloud StorageAPI 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żyj zasobnika domyślnego
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łu.
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 zasobó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 zbioró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ć adres URL pobierania plików przechowywanych w zasobnikach, który wkrótce wygaśnie. 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 biblioteki klienta
Pakiety Firebase Admin SDK korzystają z bibliotek klienta Google Cloud Storage, aby zapewnić dostęp 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 i pobieranie plików, zapoznaj się z dokumentacją i odwołaniami do interfejsu API bibliotek klientów Google Cloud Storage.