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