Introduzione all'API Admin Cloud Storage

Cloud Storage for Firebase archivia i tuoi dati in un bucket Google Cloud Storage , una soluzione di archiviazione di oggetti su scala exabyte con disponibilità elevata e ridondanza globale. Firebase Admin SDK ti consente di accedere direttamente ai tuoi bucket Cloud Storage da ambienti privilegiati. Quindi puoi utilizzare le API di Google Cloud Storage per manipolare gli oggetti archiviati nei bucket.

L'Admin SDK ti consente inoltre di creare URL condivisibili in modo che gli utenti possano scaricare oggetti nei tuoi bucket.

Utilizza un bucket predefinito

Puoi specificare un nome di bucket predefinito durante l'inizializzazione di Admin SDK. Quindi puoi 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'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.

Giava

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.

Pitone

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.

Andare

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 è necessario autenticare le librerie di Google Cloud Storage quando utilizzi Firebase Admin SDK. I riferimenti al bucket restituiti da Admin SDK sono già autenticati con le credenziali utilizzate per inizializzare la tua app Firebase.

Utilizza bucket personalizzati

Se desideri utilizzare un bucket Cloud Storage diverso da quello predefinito fornito sopra o utilizzare più bucket Cloud Storage in una singola app, puoi recuperare un riferimento a un bucket personalizzato come mostrato di seguito:

Node.js

const bucket = getStorage().bucket('my-custom-bucket');

Giava

Bucket bucket = StorageClient.getInstance().bucket("my-custom-bucket");

Pitone

bucket = storage.bucket('my-custom-bucket')

Andare

 bucket, err := client.Bucket("my-custom-bucket")

Utilizza un'app Firebase personalizzata

Se stai creando un'applicazione più complicata che interagisce con più app Firebase , puoi accedere ai bucket Cloud Storage associati a un'app Firebase specifica come segue:

Node.js

const bucket = getStorage(customApp).bucket();

Giava

Bucket bucket = StorageClient.getInstance(customApp).bucket();

Pitone

bucket = storage.bucket(app=custom_app)

Andare

otherClient, err := otherApp.Storage(context.Background())
bucket, err := otherClient.Bucket("other-app-bucket")

Ottieni un URL di download condivisibile

Puoi utilizzare Admin SDK per generare un URL di download senza scadenza per i file archiviati nei tuoi bucket. Chiunque abbia questo URL può accedere in modo permanente 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);

Librerie client di Google Cloud Storage

Gli SDK di amministrazione di Firebase dipendono dalle librerie client di Google Cloud Storage per fornire l'accesso a Cloud Storage. I riferimenti al bucket restituiti da Admin SDK sono oggetti definiti in queste librerie. Fai riferimento alla documentazione e ai riferimenti API delle librerie client di Google Cloud Storage per scoprire come utilizzare i riferimenti al bucket restituiti in casi d'uso come il caricamento e il download di file.