Cloud Storage for Firebase จะจัดเก็บข้อมูลของคุณไว้ใน Google Cloud Storage ซึ่งเป็น โซลูชันพื้นที่เก็บข้อมูลออบเจ็กต์ขนาดระดับ Exabyte ที่มีความพร้อมใช้งานสูงและมีการสำรองข้อมูลทั่วโลก Firebase Admin SDK ช่วยให้คุณเข้าถึง Cloud Storage บัคเก็ตได้โดยตรงจากสภาพแวดล้อมที่มีสิทธิ์ จากนั้นคุณจะใช้ Google Cloud Storage API เพื่อจัดการออบเจ็กต์ที่จัดเก็บไว้ในบัคเก็ตได้
Admin SDK ยังช่วยให้คุณสร้าง URL ที่แชร์ได้เพื่อให้ผู้ใช้ ดาวน์โหลดออบเจ็กต์ในบัคเก็ตได้
ตรวจสอบว่าโปรเจ็กต์ Firebase ของคุณใช้แพ็กเกจราคา Blaze แบบจ่ายตามการใช้งานจริง ซึ่งเป็นข้อกำหนดในการใช้ Cloud Storage for FirebaseCloud Storage for Firebase หากคุณเพิ่งเริ่มใช้ Firebase และ Google Cloud ให้ตรวจสอบว่าคุณมีสิทธิ์รับ เครดิตทดลองใช้ฟรี$300 หรือไม่
ใช้บัคเก็ตเริ่มต้น
คุณระบุชื่อบัคเก็ตเริ่มต้นได้เมื่อเริ่มต้น Admin SDK จากนั้นคุณจะดึงข้อมูลอ้างอิงที่ได้รับการตรวจสอบสิทธิ์ไปยังบัคเก็ตนี้ได้
ชื่อบัคเก็ตต้อง ไม่ มี 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.
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 https://cloud.google.com/java/docs/reference/google-cloud-storage/latest/com.google.cloud.storage.Bucket
// 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.
คุณสามารถใช้ข้อมูลอ้างอิงบัคเก็ตที่ Admin SDK ส่งคืนร่วมกับ ไลบรารีไคลเอ็นต์ Google Cloud Storageอย่างเป็นทางการ เพื่ออัปโหลด ดาวน์โหลด และแก้ไขเนื้อหาในบัคเก็ตที่เชื่อมโยงกับโปรเจ็กต์ Firebase โปรดทราบว่าคุณไม่จำเป็นต้องตรวจสอบสิทธิ์ Google Cloud Storageไลบรารีเมื่อใช้ Firebase Admin SDK ข้อมูลอ้างอิงบัคเก็ตที่ Admin SDK ส่งคืนจะได้รับการตรวจสอบสิทธิ์ด้วยข้อมูลเข้าสู่ระบบที่ใช้ในการเริ่มต้นแอป Firebase แล้ว
ใช้บัคเก็ตที่กำหนดเอง
หากต้องการใช้บัคเก็ต Cloud Storage อื่นที่ไม่ใช่บัคเก็ตเริ่มต้น ที่อธิบายไว้ก่อนหน้านี้ในคู่มือนี้ หรือใช้บัคเก็ต Cloud Storage หลายรายการใน แอปเดียว คุณสามารถดึงข้อมูลอ้างอิงไปยังบัคเก็ตที่กำหนดเองได้โดยทำดังนี้
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")
ใช้แอป Firebase ที่กำหนดเอง
หากคุณกำลังสร้างแอปพลิเคชันที่ซับซ้อนมากขึ้นซึ่งโต้ตอบกับ แอป Firebase หลายแอป คุณสามารถ เข้าถึงบัคเก็ต Cloud Storage ที่เชื่อมโยงกับแอป Firebase ที่เฉพาะเจาะจงได้ โดยทำดังนี้:
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")
รับ URL ดาวน์โหลดที่แชร์ได้
คุณสามารถใช้ Admin SDK เพื่อสร้าง URL ดาวน์โหลดที่ไม่หมดอายุสำหรับ ไฟล์ที่จัดเก็บไว้ในบัคเก็ต ทุกคนที่มี URL นี้จะเข้าถึงไฟล์ได้ถาวร
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
Firebase Admin SDK ขึ้นอยู่กับ Google Cloud Storage ไลบรารีไคลเอ็นต์ ในการให้สิทธิ์เข้าถึง Cloud Storage ข้อมูลอ้างอิงบัคเก็ตที่ Admin SDK ส่งคืนเป็นออบเจ็กต์ที่กำหนดไว้ในไลบรารีเหล่านี้ โปรดดูเอกสารประกอบและ ข้อมูลอ้างอิง API ของไลบรารีไคลเอ็นต์Google Cloud Storageเพื่อดูวิธี ใช้ข้อมูลอ้างอิงบัคเก็ตที่ส่งคืนในกรณีการใช้งานต่างๆ เช่น การ อัปโหลดและ ดาวน์โหลดไฟล์