ข้อมูลเบื้องต้นเกี่ยวกับ Admin Cloud Storage API

Cloud Storage for Firebase เก็บข้อมูลของคุณใน ที่เก็บข้อมูล Google Cloud Storage — โซลูชันพื้นที่เก็บข้อมูลออบเจ็กต์ขนาด Exabytes ที่มีความพร้อมใช้งานสูงและใช้ได้ทั่วโลก การทำซ้ำ Firebase Admin SDK ช่วยให้คุณเข้าถึง Cloud Storage ที่เก็บข้อมูลจากสภาพแวดล้อมที่ได้รับสิทธิ์ จากนั้นคุณสามารถใช้ Google Cloud Storage API จัดการออบเจ็กต์ที่เก็บไว้ในที่เก็บข้อมูล

นอกจากนี้ Admin SDK ยังให้คุณสร้าง URL ที่แชร์ได้เพื่อให้ผู้ใช้ ดาวน์โหลดออบเจ็กต์ในที่เก็บข้อมูล

ใช้ที่เก็บข้อมูลเริ่มต้น

คุณระบุชื่อที่เก็บข้อมูลเริ่มต้นได้เมื่อเริ่มต้น Admin SDK จากนั้น สามารถเรียกการอ้างอิงที่ได้รับการตรวจสอบสิทธิ์ไปยังที่เก็บข้อมูลนี้ได้ ชื่อที่เก็บข้อมูลต้อง ไม่มี gs:// หรือคำนำหน้าโปรโตคอลอื่นๆ ตัวอย่างเช่น หากที่เก็บข้อมูล URL ที่แสดงใน คอนโซล Firebase มีค่าเป็น gs://bucket-name.appspot.com ส่งสตริง bucket-name.appspot.com ไปยัง 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 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.

คุณสามารถใช้การอ้างอิงที่เก็บข้อมูลที่ 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 รายการเพื่อดูวิธี ใช้การอ้างอิงที่เก็บข้อมูลที่ส่งคืนในกรณีการใช้งาน เช่น upload และ ดาวน์โหลด