Cloud Storage for Firebase хранит ваши данные в корзине Google Cloud Storage — решении для хранения объектов масштаба в эксабайтах с высокой доступностью и глобальной избыточностью. Firebase Admin SDK позволяет вам напрямую получать доступ к корзинам Cloud Storage из привилегированных сред. Затем вы можете использовать API-интерфейсы Google Cloud Storage для управления объектами, хранящимися в корзинах.
Admin SDK также позволяет создавать общие URL-адреса, чтобы пользователи могли загружать объекты в ваши корзины.
Использовать сегмент по умолчанию
gs://
или других префиксов протокола. Например, если URL-адрес корзины, отображаемый в консоли Firebase , — gs:// PROJECT_ID .firebasestorage.app
, передайте строку PROJECT_ID .firebasestorage.app
в Admin SDK.
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.
Ява
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.
Питон
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.
Идти
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.
Используйте пользовательские сегменты
Node.js
const bucket = getStorage().bucket('my-custom-bucket');
Ява
Bucket bucket = StorageClient.getInstance().bucket("my-custom-bucket");
Питон
bucket = storage.bucket('my-custom-bucket')
Идти
bucket, err := client.Bucket("my-custom-bucket")
Используйте собственное приложение Firebase
Node.js
const bucket = getStorage(customApp).bucket();
Ява
Bucket bucket = StorageClient.getInstance(customApp).bucket();
Питон
bucket = storage.bucket(app=custom_app)
Идти
otherClient, err := otherApp.Storage(context.Background())
bucket, err := otherClient.Bucket("other-app-bucket")
Получите общий URL-адрес для загрузки
Node.js
const { getStorage, getDownloadURL } = require('firebase-admin/storage');
const fileRef = getStorage().bucket('my-bucket').file('my-file');
const downloadURL= await getDownloadURL(fileRef);