Admin Cloud Storage API'ye Giriş

Firebase için Cloud Storage, verilerinizi yüksek kullanılabilirliğe ve küresel yedekliliğe sahip, eksabayt ölçekli bir nesne depolama çözümü olan Google Cloud Storage paketinde depolar. Firebase Admin SDK, Cloud Storage gruplarınıza ayrıcalıklı ortamlardan doğrudan erişmenize olanak tanır. Daha sonra paketlerde depolanan nesneleri değiştirmek için Google Cloud Storage API'lerini kullanabilirsiniz.

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

Varsayılan bir paket kullan

Yönetici SDK'sını başlatırken varsayılan bir paket adı belirtebilirsiniz. Daha sonra bu pakete yönelik kimliği doğrulanmış bir referans alabilirsiniz. Paket adı gs:// veya başka herhangi bir protokol önekini içermemelidir. Örneğin, Firebase konsolunda görüntülenen 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.

Gitmek

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 Yönetici SDK'sının döndürdüğü paket referanslarını resmi Google Cloud Storage istemci kitaplıklarıyla birlikte kullanabilirsiniz. Firebase Admin SDK'yı kullanırken Google Cloud Storage kitaplıklarının kimliğini doğrulamanız gerekmediğini unutmayın. Admin SDK tarafından döndürülen paket referanslarının kimlik doğrulaması, Firebase uygulamanızı başlatmak için kullanılan kimlik bilgileriyle zaten doğrulanmıştır.

Özel paketler kullanın

Yukarıda belirtilen 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')

Gitmek

 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)

Gitmek

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

Paylaşılabilir bir indirme URL'si edinin

Paketlerinizde depolanan dosyalar için süresi dolmayan bir indirme URL'si oluşturmak amacıyla Yönetici SDK'sı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 Yönetici SDK'ları, Cloud Storage erişimi sağlamak için Google Cloud Storage istemci kitaplıklarına bağlıdır. Yönetici SDK'sının döndürdüğü paket referansları bu kitaplıklarda tanımlanan nesnelerdir. Dosya yükleme ve indirme gibi kullanım örneklerinde döndürülen paket referanslarının nasıl kullanılacağını öğrenmek için Google Cloud Storage istemci kitaplıklarının belgelerine ve API referanslarına bakın.