Cloud Storage for Firebase ช่วยให้คุณอัปโหลดและแชร์เนื้อหาที่ผู้ใช้สร้างขึ้น เช่น รูปภาพและวิดีโอ ซึ่งจะช่วยให้คุณสร้างเนื้อหาริชมีเดียในแอปได้ ระบบจะจัดเก็บข้อมูลของคุณไว้ในที่เก็บข้อมูล Google Cloud Storage ซึ่งเป็นโซลูชันพื้นที่เก็บข้อมูลออบเจ็กต์ขนาด Exabyte ที่มีความพร้อมใช้งานสูงและข้อมูลซ้ำซ้อนทั่วโลก Cloud Storage for Firebase ช่วยให้คุณอัปโหลดไฟล์เหล่านี้จากอุปกรณ์เคลื่อนที่และเว็บเบราว์เซอร์โดยตรงได้อย่างปลอดภัย ทั้งยังจัดการเครือข่ายที่ขาดหายเป็นช่วงๆ ได้อย่างง่ายดาย
ก่อนเริ่มต้น
โปรดอ่านคู่มือเริ่มต้นใช้งานสําหรับเว็บแอปให้เสร็จสมบูรณ์ หากยังไม่ได้ทํา ซึ่งรวมถึงเนื้อหาต่อไปนี้
การสร้างโปรเจ็กต์ Firebase
การลงทะเบียนเว็บแอปกับโปรเจ็กต์ และเชื่อมต่อแอปกับ Firebase ด้วยการเพิ่ม Firebase JS SDK และออบเจ็กต์การกําหนดค่า Firebase ลงในแอป
ตรวจสอบว่าโปรเจ็กต์ Firebase ใช้แพ็กเกจราคา Blaze แบบจ่ายเมื่อใช้ หากเพิ่งเริ่มใช้ Firebase และ Google Cloud ให้ตรวจสอบว่าคุณมีสิทธิ์รับเครดิตมูลค่า $300 หรือไม่
สร้างที่เก็บข้อมูล Cloud Storage เริ่มต้น
จากแผงการนำทางของFirebaseคอนโซล ให้เลือกพื้นที่เก็บข้อมูล
หากโปรเจ็กต์ของคุณยังไม่ใช้แพ็กเกจราคาแบบจ่ายตามการใช้งานของ Blaze ระบบจะแจ้งให้อัปเกรดโปรเจ็กต์
คลิกเริ่มต้นใช้งาน
เลือกตำแหน่งสำหรับที่เก็บข้อมูลเริ่มต้น
ที่เก็บข้อมูลใน
,US-CENTRAL1
และUS-EAST1
จะใช้ประโยชน์จากระดับ "ฟรีไม่จำกัด" สำหรับ Google Cloud Storage ได้ ส่วนที่เก็บข้อมูลในสถานที่อื่นๆ ทั้งหมดจะใช้ราคาและการใช้งานGoogle Cloud StorageUS-WEST1
หากต้องการ คุณสามารถสร้างที่เก็บข้อมูลหลายรายการในภายหลังได้ โดยให้แต่ละที่เก็บข้อมูลมีตำแหน่งของตนเอง
กำหนดค่า Firebase Security Rules สำหรับที่เก็บข้อมูลเริ่มต้น ในระหว่างการพัฒนา ให้พิจารณาตั้งกฎสำหรับการเข้าถึงแบบสาธารณะ
คลิกเสร็จสิ้น
คุณจะดูที่เก็บข้อมูลได้ในแท็บไฟล์ 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 ชื่อที่เก็บข้อมูลจะอยู่ในรูปแบบใดรูปแบบหนึ่งต่อไปนี้ โดยขึ้นอยู่กับเวลาที่คุณสร้างที่เก็บข้อมูลเริ่มต้น
(ที่เก็บข้อมูลเริ่มต้นที่สร้างตั้งแต่วันที่ 30 ตุลาคม 2024 เป็นต้นไปPROJECT_ID.firebasestorage.app
) (ที่เก็บข้อมูลเริ่มต้นที่สร้างก่อน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
การตั้งค่าขั้นสูง
กรณีการใช้งานบางกรณีต้องมีการตั้งค่าเพิ่มเติม ดังนี้
- การใช้ที่เก็บข้อมูล Cloud Storage ในภูมิภาคทางภูมิศาสตร์หลายแห่ง
- ใช้ที่เก็บข้อมูล Cloud Storage ในคลาสพื้นที่เก็บข้อมูลที่แตกต่างกัน
- ใช้ที่เก็บข้อมูล Cloud Storage กับผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์หลายรายในแอปเดียวกัน
กรณีการใช้งานแรกเหมาะอย่างยิ่งหากคุณมีผู้ใช้อยู่ทั่วโลกและต้องการเก็บข้อมูลของพวกเขาไว้ใกล้ตัว เช่น คุณสามารถสร้างที่เก็บข้อมูลในสหรัฐอเมริกา ยุโรป และเอเชียเพื่อจัดเก็บข้อมูลของผู้ใช้ในภูมิภาคเหล่านั้นเพื่อลดเวลาในการตอบสนอง
กรณีการใช้งานที่ 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");
ขั้นตอนถัดไป
เตรียมเปิดตัวแอป
เปิดใช้ App Check เพื่อช่วยตรวจสอบว่ามีเพียงแอปของคุณเท่านั้นที่เข้าถึงที่เก็บข้อมูลได้
ตั้งค่าการแจ้งเตือนงบประมาณสำหรับโปรเจ็กต์ในคอนโซล Google Cloud
ตรวจสอบแดชบอร์ดการใช้งานและการเรียกเก็บเงินในคอนโซล Firebase เพื่อดูภาพรวมการใช้งานโปรเจ็กต์ในบริการ Firebase หลายรายการ นอกจากนี้ คุณยังไปที่Cloud Storageแดชบอร์ดการใช้งานเพื่อดูข้อมูลการใช้งานโดยละเอียดได้อีกด้วย