Admin Cloud Storage API'ye giriş

Cloud Storage for Firebase, verilerinizi bir Google Cloud Storage paketinde depolar. Bu paket, yüksek kullanılabilirlik ve global yedeklilik sunan, exabyte ölçeğinde bir nesne depolama çözümüdür. Firebase Admin SDK, ayrıcalıklı ortamlardan Cloud Storage gruplarınıza doğrudan erişmenizi sağlar. Ardından, gruplarda depolanan nesneleri değiştirmek için Google Cloud Storage API'leri kullanabilirsiniz.

Admin SDK, kullanıcıların paketlerinizdeki nesneleri indirmesi için paylaşılabilir URL'ler oluşturmanıza da olanak tanır.

Varsayılan bir paket kullanma

Admin SDK'yı başlatırken varsayılan bir paket adı belirtebilirsiniz. Ardından, bu pakete kimliği doğrulanmış bir referans alabilirsiniz.

Paket adı gs:// veya başka bir protokol öneki içermemelidir. Örneğin, Firebase konsolunda gösterilen paket URL'si gs://PROJECT_ID.firebasestorage.app ise PROJECT_ID.firebasestorage.app dizesini Admin SDK'ya iletin.

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 https://cloud.google.com/java/docs/reference/google-cloud-storage/latest/com.google.cloud.storage.Bucket
// 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': 'PROJECT_ID.firebasestorage.app'
})

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.

Go

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.

Firebase projelerinizle ilişkili paketlerdeki içerikleri yüklemek, indirmek ve değiştirmek için Yönetici SDK'sı tarafından döndürülen paket referanslarını resmi Google Cloud Storage istemci kitaplıklarıyla birlikte kullanabilirsiniz. Firebase Admin SDK'sını kullanırken kitaplıkların kimliğini doğrulamanız gerekmez.Google Cloud Storage Admin SDK tarafından döndürülen bucket referansları, Firebase uygulamanızı başlatmak için kullanılan kimlik bilgileriyle zaten kimliği doğrulanmış durumdadır.

Özel gruplar kullanma

Bu kılavuzda daha önce açıklanan Cloud Storage varsayılan paket dışında bir paket kullanmak veya tek bir uygulamada birden fazla Cloud Storage paket kullanmak istiyorsanız özel bir pakete referans alabilirsiniz:

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')

Go

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

Özel bir Firebase uygulaması kullanma

Birden fazla Firebase uygulamasıyla etkileşimde bulunan daha karmaşık bir uygulama geliştiriyorsanız belirli bir Firebase uygulamasıyla ilişkili Cloud Storage paketlerine aşağıdaki gibi erişebilirsiniz:

Node.js

const bucket = getStorage(customApp).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")

Paylaşılabilir indirme URL'si alma

Kovalarınızda depolanan dosyalar için geçerliliği sona ermeyen bir indirme URL'si oluşturmak üzere Admin SDK aracını kullanabilirsiniz. Bu URL'ye sahip olan herkes dosyaya kalıcı olarak erişebilir.

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 istemci kitaplıkları

Firebase Admin SDK'ları, Google Cloud Storage istemci kitaplıklarına bağlıdır. Cloud Storage erişimi sağlamak için kullanılır. Yönetici SDK'sı tarafından döndürülen paket referansları, bu kitaplıklarda tanımlanan nesnelerdir. Dosya yükleme ve indirme gibi kullanım alanlarında döndürülen paket referanslarını nasıl kullanacağınızı öğrenmek için Google Cloud Storage istemci kitaplıklarının belgelerine ve API referanslarına bakın.