เริ่มต้นใช้งาน Cloud Storage บนเว็บ

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

ก่อนเริ่มต้น

  1. โปรดอ่านคู่มือเริ่มต้นใช้งานสําหรับเว็บแอปให้เสร็จสมบูรณ์ หากยังไม่ได้ทํา ซึ่งรวมถึงเนื้อหาต่อไปนี้

    • การสร้างโปรเจ็กต์ Firebase

    • การลงทะเบียนเว็บแอปกับโปรเจ็กต์ และเชื่อมต่อแอปกับ Firebase ด้วยการเพิ่ม Firebase JS SDK และออบเจ็กต์การกําหนดค่า Firebase ลงในแอป

  2. ตรวจสอบว่าโปรเจ็กต์ Firebase ใช้แพ็กเกจราคาแบบจ่ายเมื่อใช้ของ Blaze หากเพิ่งเริ่มใช้ Firebase และ Google Cloud ให้ตรวจสอบว่าคุณมีสิทธิ์รับเครดิตมูลค่า$300 หรือไม่

สร้างที่เก็บข้อมูล Cloud Storage เริ่มต้น

  1. จากแผงการนำทางของคอนโซล Firebase ให้เลือกพื้นที่เก็บข้อมูล

    หากโปรเจ็กต์ของคุณยังไม่ใช้แพ็กเกจราคาแบบจ่ายตามการใช้งานของ Blaze ระบบจะแจ้งให้อัปเกรดโปรเจ็กต์

  2. คลิกเริ่มต้นใช้งาน

  3. เลือกตำแหน่งสำหรับที่เก็บข้อมูลเริ่มต้น

  4. กำหนดค่า Firebase Security Rules สำหรับที่เก็บข้อมูลเริ่มต้น ในระหว่างการพัฒนา ให้ลองตั้งค่ากฎสำหรับการเข้าถึงแบบสาธารณะ

  5. คลิกเสร็จสิ้น

ตอนนี้คุณดูที่เก็บข้อมูลได้ในCloud Storage แท็บไฟล์ ของคอนโซล Firebase รูปแบบชื่อที่เก็บข้อมูลเริ่มต้นคือ PROJECT_ID.firebasestorage.app

ตั้งค่าการเข้าถึงแบบสาธารณะ

Cloud Storage for Firebase มีภาษากฎแบบประกาศซึ่งช่วยให้คุณกำหนดโครงสร้างข้อมูล วิธีการจัดทำดัชนี และเวลาที่ระบบจะอ่านและเขียนข้อมูลได้ โดยค่าเริ่มต้น ระบบจะจํากัดการเข้าถึงระดับอ่านและเขียนCloud Storageเพื่อให้มีเพียงผู้ใช้ที่ตรวจสอบสิทธิ์แล้วเท่านั้นที่อ่านหรือเขียนข้อมูลได้ หากต้องการเริ่มต้นใช้งานโดยไม่ต้องตั้งค่า Authentication ให้กำหนดค่ากฎสำหรับการเข้าถึงแบบสาธารณะ

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

เพิ่ม Cloud Storage JS SDK และเริ่มต้น Cloud Storage

คุณต้องระบุCloud Storageชื่อที่เก็บข้อมูลเมื่อเริ่มต้นใช้งาน JavaScript SDK

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

  • PROJECT_ID.firebasestorage.app (ที่เก็บข้อมูลเริ่มต้นที่สร้างตั้งแต่วันที่ 30 ตุลาคม 2024 เป็นต้นไป )
  • PROJECT_ID.appspot.com (ที่เก็บข้อมูลเริ่มต้นที่สร้างก่อน 30 ตุลาคม 2024)

เริ่มต้น SDK โดยใช้ข้อมูลโค้ดต่อไปนี้

Web

import { initializeApp } from "firebase/app";
import { getStorage } from "firebase/storage";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
  storageBucket: 'BUCKET_NAME'
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);


// Initialize Cloud Storage and get a reference to the service
const storage = getStorage(app);

Web

import firebase from "firebase/app";
import "firebase/compat/storage";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
  storageBucket: 'BUCKET_NAME'
};

// Initialize Firebase
firebase.initializeApp(firebaseConfig);


// Initialize Cloud Storage and get a reference to the service
const storage = firebase.storage();

คุณพร้อมเริ่มใช้ Cloud Storage แล้ว

ขั้นตอนถัดไป ดูวิธีสร้างข้อมูลอ้างอิง Cloud Storage

การตั้งค่าขั้นสูง

กรณีการใช้งานบางกรณีต้องมีการตั้งค่าเพิ่มเติม ดังนี้

กรณีการใช้งานแรกเหมาะอย่างยิ่งหากคุณมีผู้ใช้ทั่วโลกและต้องการเก็บข้อมูลของผู้ใช้ไว้ใกล้ๆ ผู้ใช้ เช่น คุณสามารถสร้างที่เก็บข้อมูลในสหรัฐอเมริกา ยุโรป และเอเชียเพื่อจัดเก็บข้อมูลของผู้ใช้ในภูมิภาคเหล่านั้นเพื่อลดเวลาในการตอบสนอง

Use Case ที่ 2 จะมีประโยชน์หากคุณมีข้อมูลที่มีรูปแบบการเข้าถึงที่แตกต่างกัน เช่น คุณอาจตั้งค่าที่เก็บข้อมูลระดับภูมิภาคหรือหลายภูมิภาคที่จัดเก็บรูปภาพหรือเนื้อหาอื่นๆ ที่เข้าถึงบ่อย และที่เก็บข้อมูล Nearline หรือ Coldline ที่เก็บข้อมูลสำรองของผู้ใช้หรือเนื้อหาอื่นๆ ที่เข้าถึงไม่บ่อย

ไม่ว่าในกรณีใด คุณจะต้องใช้ที่เก็บข้อมูล Cloud Storage หลายรายการ

Use Case ที่สามจะมีประโยชน์หากคุณกำลังสร้างแอป เช่น Google ไดรฟ์ ซึ่งอนุญาตให้ผู้ใช้มีบัญชีที่เข้าสู่ระบบหลายบัญชี (เช่น บัญชีส่วนตัวและบัญชีงาน) คุณสามารถใช้อินสแตนซ์แอป Firebase ที่กําหนดเองเพื่อตรวจสอบสิทธิ์บัญชีเพิ่มเติมแต่ละบัญชี

ใช้ที่เก็บข้อมูล Cloud Storage หลายรายการ

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

Web

import { getApp } from "firebase/app";
import { getStorage } from "firebase/storage";

// Get a non-default Storage bucket
const firebaseApp = getApp();
const storage = getStorage(firebaseApp, "gs://my-custom-bucket");

Web

// Get a non-default Storage bucket
var storage = firebase.app().storage("gs://my-custom-bucket");

การทำงานกับที่เก็บข้อมูลที่นำเข้า

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

gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://BUCKET_NAME

คุณดูหมายเลขโปรเจ็กต์ได้ตามที่อธิบายไว้ในข้อมูลเบื้องต้นเกี่ยวกับโปรเจ็กต์ Firebase

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

ใช้แอป Firebase ที่กําหนดเอง

หากกำลังสร้างแอปที่ซับซ้อนมากขึ้นโดยใช้ firebase.app.App ที่กําหนดเอง คุณสามารถสร้างอินสแตนซ์ของ firebase.storage.Storage ที่เริ่มต้นด้วยแอปนั้น ดังนี้

Web

import { getStorage } from "firebase/storage";

// Get the default bucket from a custom firebase.app.App
const storage1 = getStorage(customApp);

// Get a non-default bucket from a custom firebase.app.App
const storage2 = getStorage(customApp, "gs://my-custom-bucket");

Web

// Get the default bucket from a custom firebase.app.App
var storage = customApp.storage();

// Get a non-default bucket from a custom firebase.app.App
var storage = customApp.storage("gs://my-custom-bucket");

ขั้นตอนถัดไป