Admin Cloud Storage API'ye Giriş

Cloud Storage for Firebase, verilerinizi bir Google Cloud Storage paketinde depolar. Bu, yüksek kullanılabilirlik ve küresel yedekleme olanağı sunan bir eksabayt ölçekli nesne depolama çözümüdür. Firebase Admin SDK, Cloud Storage paketlerinize ayrıcalıklı ortamlardan doğrudan erişmenizi sağlar. Ardından paketlerde depolanan nesneleri değiştirmek için Google Cloud Storage API'lerini kullanabilirsiniz.

Yönetici SDK'si, kullanıcıların paketlerinizdeki nesneleri indirebilmesi için paylaşılabilir URL'ler oluşturmanıza da olanak tanır.

Varsayılan paket kullan

Admin SDK'yı ilk kullanıma hazırlarken varsayılan bir paket adı belirtebilirsiniz. Ardından bu pakete kimliği doğrulanmış bir referans alabilirsiniz. Paket adı, gs:// veya başka protokol ön ekleri içermemelidir. Örneğin, Firebase konsolunda gösterilen paket URL'si gs://bucket-name.appspot.com ise bucket-name.appspot.com dizesini Yönetici SDK'sına 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 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.

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çeriği yüklemek, indirmek ve değiştirmek için resmi Google Cloud Storage istemci kitaplıklarıyla birlikte Yönetici SDK'sı tarafından döndürülen paket referanslarını kullanabilirsiniz. Firebase Admin SDK'yı kullanırken Google Cloud Storage kitaplıklarında kimlik doğrulaması yapmanız gerekmediğini unutmayın. Admin SDK tarafından döndürülen paket referanslarının kimliği, Firebase uygulamanızı ilk kullanıma hazırlamak için kullanılan kimlik bilgileriyle zaten doğrulanır.

Özel paketler kullanma

Yukarıda sağlanan varsayılanın dışında bir Cloud Storage paketi kullanmak veya tek bir uygulamada birden fazla Cloud Storage paketi kullanmak istiyorsanız aşağıda gösterildiği gibi ö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ı kullanın

Birden fazla Firebase uygulamasıyla etkileşim kuran daha karmaşık bir uygulama oluşturuyorsanız belirli bir Firebase uygulamasıyla ilişkili Cloud Storage paketlerine aşağıdaki şekilde 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 bir indirme URL'si alma

Paketlerinizde depolanan dosyalar için süresi dolmak üzere olmayan bir indirme URL'si oluşturmak için Yönetici SDK'sını kullanabilirsiniz. Bu URL'ye sahip 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 Yönetici SDK'ları, Cloud Storage erişimi sağlamak için Google Cloud Storage istemci kitaplıklarına ihtiyaç duyar. Admin SDK 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.