Admin Cloud Storage API'ye giriş

Cloud Storage for Firebase, verilerinizi yüksek kullanılabilirlik ve küresel yedekleme sunan bir exabayt ölçekli nesne depolama çözümü olan Google Cloud Storage paketinde depolar. Firebase Admin SDK, ayrıcalıklı ortamlardan doğrudan Cloud Storage paketlerinize erişmenize olanak tanır. Ardından, gruplarda depolanan nesneleri değiştirmek için Google Cloud Storage API'lerini 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 paketi kullanma

Yönetici SDK'sını başlatırken varsayılan bir paket adı belirtebilirsiniz. Ardından, bu pakete ait kimliği doğrulanmış bir referans alabilirsiniz.

Paket adı, gs:// veya başka bir protokol ön eki içermemelidir. Örneğin, Firebase konsolunda görüntülenen paket URL'si gs://PROJECT_ID.firebasestorage.app ise PROJECT_ID.firebasestorage.app 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': '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 Google Cloud Storage kitaplıklarının kimliğini doğrulamanız gerekmez. Admin SDK'sı tarafından döndürülen paket referansları, Firebase uygulamanızı başlatmak için kullanılan kimlik bilgileriyle zaten kimlik doğrulamasını tamamlamıştır.

Özel paketleri kullanma

Bu kılavuzun önceki bölümlerinde açıklanan varsayılan paket dışında bir Cloud Storage paketi kullanmak veya tek bir uygulamada birden fazla Cloud Storage paketi 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 Firebase uygulaması kullanma

Birden fazla Firebase uygulamasıyla etkileşime geçen 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 bir indirme URL'si alma

Paketlerinizde depolanan dosyalar için süresi dolmayacak bir indirme URL'si oluşturmak üzere Admin SDK işlevini 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ı, Cloud Storage erişimi sağlamak için Google Cloud Storage istemci kitaplıklarına ihtiyaç duyar. 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ın nasıl kullanılacağını öğrenmek için Google Cloud Storage istemci kitaplıklarının belgelerine ve API referanslarına bakın.