Giới thiệu về Admin Cloud Storage API

Cloud Storage for Firebase lưu trữ dữ liệu của bạn trong Bộ chứa Google Cloud Storage — một giải pháp lưu trữ đối tượng tỷ lệ exabyte với khả năng hoạt động cao và khả năng truy cập toàn cầu dư thừa. SDK quản trị của Firebase cho phép bạn truy cập trực tiếp vào Cloud Storage bộ chứa từ môi trường đặc quyền. Sau đó, bạn có thể sử dụng API Google Cloud Storage để thao tác với các đối tượng được lưu trữ trong bộ chứa.

Admin SDK cũng cho phép bạn tạo URL có thể chia sẻ để người dùng có thể tải xuống các đối tượng trong bộ chứa của bạn.

Sử dụng bộ chứa mặc định

Bạn có thể chỉ định tên bộ chứa mặc định khi khởi chạy SDK dành cho quản trị viên. Sau đó, bạn có thể truy xuất tham chiếu đã xác thực tới nhóm này. Tên bộ chứa phải không chứa gs:// hoặc bất kỳ tiền tố giao thức nào khác. Ví dụ: nếu nhóm URL hiển thị trong Bảng điều khiển Firebasegs://bucket-name.appspot.com, hãy truyền chuỗi bucket-name.appspot.com đến SDK dành cho quản trị viên.

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.

Tiến hành

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.

Bạn có thể sử dụng các tệp tham chiếu đến nhóm do SDK quản trị trả về cùng với chính thức Google Cloud Storage thư viện ứng dụng để tải lên, tải xuống và sửa đổi nội dung trong các nhóm liên kết với Dự án Firebase. Xin lưu ý rằng bạn không cần phải xác thực Thư viện Google Cloud Storage khi sử dụng SDK dành cho quản trị viên Firebase. Chiếc xô các tệp tham chiếu do SDK dành cho quản trị viên trả về đã được xác thực bằng thông tin đăng nhập được dùng để chạy ứng dụng Firebase của bạn.

Dùng bộ chứa tuỳ chỉnh

Nếu bạn muốn sử dụng một bộ chứa Cloud Storage khác với bộ chứa mặc định được cung cấp ở trên hoặc sử dụng nhiều bộ chứa Cloud Storage trong một ứng dụng, bạn có thể truy xuất thông tin tham chiếu đến một bộ chứa tuỳ chỉnh như minh hoạ dưới đây:

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')

Tiến hành

 bucket, err := client.Bucket("my-custom-bucket")

Sử dụng ứng dụng Firebase tùy chỉnh

Nếu bạn đang xây dựng một ứng dụng phức tạp hơn tương tác với nhiều Firebase, bạn có thể truy cập vào Cloud Storage nhóm liên kết với một ứng dụng Firebase cụ thể như sau:

Node.js

const bucket = getStorage(customApp).bucket();

Java

Bucket bucket = StorageClient.getInstance(customApp).bucket();

Python

bucket = storage.bucket(app=custom_app)

Tiến hành

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

Nhận URL tải xuống có thể chia sẻ

Bạn có thể sử dụng Admin SDK để tạo URL tải xuống không hết hạn cho được lưu trữ trong bộ chứa của bạn. Bất kỳ ai có URL này đều có thể vĩnh viễn truy cập vào tệp.

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 thư viện ứng dụng

SDK quản trị của Firebase phụ thuộc vào Google Cloud Storage thư viện ứng dụng để cấp quyền truy cập Cloud Storage. Các tham chiếu nhóm được trả về SDK quản trị là các đối tượng được xác định trong các thư viện này. Hãy tham khảo tài liệu và Tài liệu tham khảo API của thư viện ứng dụng Google Cloud Storage để tìm hiểu cách sử dụng tham chiếu bộ chứa được trả về trong các trường hợp sử dụng như tệp tải lêntải xuống.