Cloud Storage for Firebase, verilerinizi bir Google Cloud Storage paketinde depolar. Bu paket, yüksek kullanılabilirlik ve küresel yedekleme imkanı sunan eksabayt ölçekli nesne depolama çözümüdür. Firebase Admin SDK, ayrıcalıklı ortamlardan Cloud Storage paketlerinize doğrudan erişmenizi sağlar. Ardından, paketlerde depolanan nesneleri değiştirmek için Google Cloud Storage API'lerini kullanabilirsiniz.
Admin SDK, kullanıcıların paketlerinizdeki nesneleri indirebilmesi için paylaşılabilir URL'ler oluşturmanıza da olanak tanır.
Varsayılan paket kullan
Yönetici SDK'sını başlatırken varsayılan bir paket adı belirtebilirsiniz. Ardından bu paket için 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 paketlerde içerik 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'yı kullanırken Google Cloud Storage kitaplıklarının kimliğini doğrulamanız gerekmediğini unutmayın. Yönetici SDK'sı tarafından döndürülen paket referanslarının kimliği, Firebase uygulamanızı başlatmak için kullanılan kimlik bilgileriyle zaten doğrulanmıştır.
Özel paketleri kullanma
Yukarıda sağlanan varsayılan paket dışında bir Cloud Storage paketi kullanmak veya tek bir uygulamada birden çok Cloud Storage paketi kullanmak istiyorsanız aşağıda gösterildiği gibi özel paket 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 çok Firebase uygulamasıyla etkileşime giren 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 al
Yönetici SDK'sını kullanarak paketlerinizde depolanan dosyalar için süresi dolmayan bir indirme URL'si oluşturabilirsiniz. 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ından yararlanır. Admin SDK'nın döndürdüğü paket referansları, bu kitaplıklarda tanımlanan nesnelerdir. Dosya yükleme ve indirme gibi kullanım durumları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.