Giới thiệu về API lưu trữ đám mây dành cho quản trị viên

Cloud Storage cho 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 quy mô exabyte với tính khả dụng cao và dự phòng toàn cầu. SDK quản trị Firebase cho phép bạn truy cập trực tiếp vào bộ chứa Lưu trữ đám mây của mình từ các 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.

SDK quản trị cũng cho phép bạn tạo các 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 thùng mặc định

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

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.

con trăn

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.

Đi

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 tham chiếu bộ chứa do SDK quản trị trả về cùng với thư viện máy khách Google Cloud Storage chính thức để tải lên, tải xuống và sửa đổi nội dung trong bộ chứa được liên kết với dự án Firebase của bạn. Lưu ý rằng bạn không phải xác thực thư viện Google Cloud Storage khi sử dụng SDK quản trị Firebase. Các tham chiếu bộ chứa do SDK quản trị trả về đã được xác thực bằng thông tin đăng nhập được sử dụng để khởi tạo ứng dụng Firebase của bạn.

Sử dụng xô tùy chỉnh

Nếu bạn muốn sử dụng 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 tham chiếu đến bộ chứa tùy chỉnh như minh họa bên dưới:

Node.js

const bucket = getStorage().bucket('my-custom-bucket');

Java

Bucket bucket = StorageClient.getInstance().bucket("my-custom-bucket");

con trăn

bucket = storage.bucket('my-custom-bucket')

Đi

 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 ứng dụng Firebase , thì bạn có thể truy cập vào bộ chứa Lưu trữ đám mây được 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();

con trăn

bucket = storage.bucket(app=custom_app)

Đi

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 SDK quản trị để tạo URL tải xuống không hết hạn cho các tệp được lưu trữ trong bộ chứa của bạn. Bất kỳ ai có URL này đều có thể truy cập tệp vĩnh viễn.

Node.js

const { getStorage, getDownloadURL } = require('firebase-admin/storage');

const fileRef = getStorage().bucket('my-bucket').file('my-file');
const downloadURL= await getDownloadURL(fileRef);

Thư viện máy khách Google Cloud Storage

SDK quản trị Firebase phụ thuộc vào thư viện máy khách Google Cloud Storage để cung cấp quyền truy cập vào Cloud Storage. Các tham chiếu bộ chứa do SDK quản trị trả về là các đối tượng được xác định trong các thư viện này. Tham khảo tài liệu và tham chiếu API của thư viện máy khách 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ải lêntải xuống tệp .