Introdução à API Admin Cloud Storage

O Cloud Storage para Firebase armazena seus dados no Google Cloud Storage, uma solução de armazenamento de objetos de vários exabytes com alta disponibilidade e redundância global. Com o SDK Admin do Firebase, você pode acessar diretamente seus intervalos do Google Cloud Storage de ambientes privilegiados. Dessa forma, é possível usar as Google Cloud Storage APIs para manipular os objetos armazenados nos intervalos.

Usar um intervalo padrão

Você pode especificar um nome de intervalo padrão ao inicializar o SDK Admin. Com isso, é possível recuperar uma referência autenticada para esse intervalo. O nome do intervalo não pode conter gs:// ou quaisquer outros prefixos de protocolo. Por exemplo, se o URL do intervalo exibido no Firebase console for gs://bucket-name.appspot.com, transmita a string bucket-name.appspot.com para o SDK Admin.

Node.js

var admin = require("firebase-admin");

var serviceAccount = require("path/to/serviceAccountKey.json");

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    storageBucket: "<BUCKET_NAME>.appspot.com"
});

var bucket = admin.storage().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 = new 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://google-cloud-python.readthedocs.io/en/latest/storage/buckets.html
# for more details.

Go

import (
	"log"

	"golang.org/x/net/context"

	firebase "firebase.google.com/go"
	"firebase.google.com/go/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.

Você pode usar as referências do intervalo retornadas pelo SDK Admin em conjunto com as bibliotecas de cliente do Google Cloud Storage oficiais para fazer o download, o upload e modificar o conteúdo nos intervalos associados aos projetos do Firebase. Não é preciso autenticar as bibliotecas do Google Cloud Storage ao usar o SDK Admin do Firebase. As referências do intervalo retornadas pelo SDK Admin já foram autenticadas com as credenciais usadas para inicializar o app do Firebase.

Usar intervalos personalizados

Para usar um intervalo de armazenamento diferente do padrão fornecido acima ou utilizar vários intervalos de armazenamento em um único app, você pode recuperar uma referência a um intervalo personalizado, conforme mostrado no exemplo a seguir:

Node.js

var bucket = admin.storage().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")

Usar um app do Firebase personalizado

Se você estiver criando um aplicativo mais complicado que interage com vários apps do Firebase, acesse os intervalos de armazenamento associados a um app específico do Firebase da seguinte maneira:

Node.js

var bucket = customApp.storage().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")

Bibliotecas de cliente do Google Cloud Storage

O SDK Admin do Firebase depende das bibliotecas de cliente do Google Cloud Storage para dar acesso ao Cloud Storage. As referências do intervalo retornadas pelo SDK Admin são objetos definidos nessas bibliotecas. Consulte as referências de documentação e de API das bibliotecas de cliente do Google Cloud Storage para saber como usar as referências de intervalo retornadas em casos de uso, como para fazer o download e upload de um arquivo.

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.