Cloud Storage for Firebase memorizza i tuoi dati in un Bucket Google Cloud Storage: un soluzione di archiviazione di oggetti con scalabilità in exabyte ad alta disponibilità e ridondanza. L'SDK Admin Firebase ti consente di accedere direttamente ai tuoi Cloud Storage bucket da ambienti con privilegi. Quindi puoi utilizzare Google Cloud Storage API per manipolare gli oggetti archiviati nei bucket.
Admin SDK ti consente anche di creare URL condivisibili in modo che gli utenti possano per scaricare gli oggetti nei bucket.
Utilizza un bucket predefinito
Puoi specificare un nome di bucket predefinito durante l'inizializzazione di SDK Admin. Poi
può recuperare un riferimento autenticato a questo bucket. Il nome del bucket non deve contenere gs://
o altri prefissi di protocollo. Ad esempio, se l'URL del bucket visualizzato nella console Firebase è gs://bucket-name.appspot.com
, passa la stringa bucket-name.appspot.com
all'SDK Admin.
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.
Vai
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.
Puoi utilizzare i riferimenti ai bucket restituiti dall'SDK Admin insieme alle librerie client ufficiali di Google Cloud Storage per caricare, scaricare e modificare i contenuti nei bucket associati ai tuoi progetti Firebase. Tieni presente che non devi autenticarti Google Cloud Storage librerie quando utilizzi l'SDK Firebase Admin. Il bucket i riferimenti restituiti da SDK Admin sono già autenticati con le credenziali utilizzate per inizializzare l'app Firebase.
Usa bucket personalizzati
Se vuoi utilizzare un bucket Cloud Storage diverso da quello predefinito fornito sopra o più bucket Cloud Storage in un'unica app, puoi recuperare un riferimento a un bucket personalizzato come mostrato di seguito:
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')
Vai
bucket, err := client.Bucket("my-custom-bucket")
Utilizza un'app Firebase personalizzata
Se stai creando un'applicazione più complicata che interagisce con più Firebase Apps, puoi accedere Cloud Storage bucket associati a una specifica app Firebase, come segue:
Node.js
const bucket = getStorage(customApp).bucket();
Java
Bucket bucket = StorageClient.getInstance(customApp).bucket();
Python
bucket = storage.bucket(app=custom_app)
Vai
otherClient, err := otherApp.Storage(context.Background())
bucket, err := otherClient.Bucket("other-app-bucket")
Ottenere un URL di download condivisibile
Puoi utilizzare Admin SDK per generare un URL di download che non scade per archiviati nei tuoi bucket. Chiunque abbia questo URL può avere accesso permanente per accedere al file.
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 librerie client
Gli SDK Firebase Admin dipendono Google Cloud Storage librerie client per fornire l'accesso Cloud Storage. I riferimenti ai bucket restituiti dall'SDK Admin sono oggetti definiti in queste librerie. Consulta la documentazione e i riferimenti API delle librerie client Google Cloud Storage per scoprire come utilizzare i riferimenti ai bucket restituiti in casi d'uso come il caricamento e il download dei file.