Cloud Storage for Firebase stocke vos données dans un Bucket Google Cloud Storage : un solution de stockage d'objets à l'échelle de l'exaoctet, offrant une haute disponibilité et redondance. Le SDK Admin Firebase vous permet d'accéder directement à vos buckets Cloud Storage à partir d'environnements privilégiés. Vous pouvez ensuite utiliser API Google Cloud Storage pour manipuler les objets stockés dans les buckets.
Le Admin SDK vous permet également de créer des URL partageables afin que les utilisateurs puissent télécharger des objets dans vos buckets.
Utiliser un bucket par défaut
Vous pouvez spécifier un nom de bucket par défaut lorsque vous initialisez le SDK Admin. Vous pouvez ensuite récupérer une référence authentifiée à ce bucket. Le nom du bucket ne doit pas contenir gs://
ni aucun autre préfixe de protocole. Par exemple, si le bucket
URL affichée dans la
Console Firebase
est gs://bucket-name.appspot.com
, transmettez la chaîne bucket-name.appspot.com
à
le 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.
Accéder
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.
Vous pouvez utiliser les références de bucket renvoyées par le SDK Admin conjointement avec le responsable Bibliothèques clientes Google Cloud Storage pour importer, télécharger et modifier des contenus dans les ensembles associés à votre projets Firebase. Notez que vous n'avez pas besoin d'authentifier les bibliothèques Google Cloud Storage lorsque vous utilisez le SDK Admin Firebase. Les références de bucket renvoyées par le SDK Admin sont déjà authentifiées avec les identifiants utilisés pour initialiser votre application Firebase.
Utiliser des buckets personnalisés
Si vous souhaitez utiliser un bucket Cloud Storage autre que le bucket par défaut fournis ci-dessus, ou utiliser plusieurs buckets Cloud Storage dans une même application. vous pouvez récupérer une référence à un bucket personnalisé, comme indiqué ci-dessous:
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')
Accéder
bucket, err := client.Bucket("my-custom-bucket")
Utiliser une application Firebase personnalisée
Si vous créez une application plus complexe qui interagit avec plusieurs applications Firebase, vous pouvez accéder aux Buckets Cloud Storage associés à une application Firebase spécifique, comme suit:
Node.js
const bucket = getStorage(customApp).bucket();
Java
Bucket bucket = StorageClient.getInstance(customApp).bucket();
Python
bucket = storage.bucket(app=custom_app)
Accéder
otherClient, err := otherApp.Storage(context.Background())
bucket, err := otherClient.Bucket("other-app-bucket")
Obtenir une URL de téléchargement partageable
Vous pouvez utiliser Admin SDK afin de générer une URL de téléchargement sans date d'expiration pour des fichiers stockés dans vos buckets. Toute personne disposant de cette URL peut définitivement accéder au fichier.
Node.js
const { getStorage, getDownloadURL } = require('firebase-admin/storage');
const fileRef = getStorage().bucket('my-bucket').file('my-file');
const downloadURL= await getDownloadURL(fileRef);
Bibliothèques clientes Google Cloud Storage
Les SDK Admin Firebase dépendent Bibliothèques clientes Google Cloud Storage pour fournir l'accès à Cloud Storage. Les références de bucket renvoyées par Les SDK Admin sont des objets définis dans ces bibliothèques. Consultez la documentation et les références d'API des bibliothèques clientes Google Cloud Storage pour savoir comment utiliser les références de bucket renvoyées dans des cas d'utilisation tels que l'importation et le téléchargement de fichiers.