บทนำสู่ผู้ดูแลระบบ Cloud Storage API

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

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

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

Node.js

const admin = require('firebase-admin');

const serviceAccount = require('./path/to/serviceAccountKey.json');

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  storageBucket: '<BUCKET_NAME>.appspot.com'
});

const bucket = admin.storage().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.

ไป

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.

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

ใช้ถังแบบกำหนดเอง custom

หากคุณต้องการใช้ที่เก็บข้อมูล Cloud Storage นอกเหนือจากค่าเริ่มต้นที่ให้ไว้ข้างต้น หรือใช้ที่เก็บข้อมูล Cloud Storage หลายรายการในแอปเดียว คุณสามารถดึงข้อมูลอ้างอิงไปยังที่เก็บข้อมูลที่กำหนดเองดังที่แสดงด้านล่าง

Node.js

const bucket = admin.storage().bucket('my-custom-bucket');

Java

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

Python

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

ไป

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

ใช้แอพ Firebase ที่กำหนดเอง

หากคุณกำลังสร้างแอพลิเคชันที่ซับซ้อนมากขึ้นที่ติดต่อกับ แอพพลิเค Firebase หลาย คุณสามารถเข้าถึงบุ้งกี๋ Cloud Storage ที่เกี่ยวข้องกับแอป Firebase เฉพาะดังนี้

Node.js

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

Java

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

Python

bucket = storage.bucket(app=custom_app)

ไป

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

ไลบรารีไคลเอ็นต์ Google Cloud Storage

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