Cloud Storage for Firebase ให้คุณอัปโหลดและแชร์เนื้อหาที่ผู้ใช้สร้างขึ้น เช่น รูปภาพและวิดีโอ ซึ่งจะช่วยคุณสร้างเนื้อหาริชมีเดียลงในแอปได้ ระบบจะจัดเก็บข้อมูลไว้ในที่เก็บข้อมูล Google Cloud Storage ซึ่งเป็นโซลูชันพื้นที่เก็บข้อมูลออบเจ็กต์ขนาดเอกซะไบต์ที่มีความพร้อมใช้งานสูงและการทำซ้ำทั่วโลก Cloud Storage for Firebase ให้คุณอัปโหลดไฟล์เหล่านี้จากอุปกรณ์เคลื่อนที่และเว็บเบราว์เซอร์โดยตรงได้อย่างปลอดภัย ซึ่งช่วยให้จัดการเครือข่ายที่ขาดช่วงได้อย่างง่ายดาย
สิ่งที่ต้องดำเนินการก่อน
ติดตั้ง Firebase JS SDK และเริ่มต้น Firebase หากยังไม่ได้ทำ
สร้างที่เก็บข้อมูล Cloud Storage เริ่มต้น
เลือกพื้นที่เก็บข้อมูลจากแผงการนำทางของคอนโซล Firebase แล้วคลิกเริ่มต้นใช้งาน
ตรวจสอบข้อความเกี่ยวกับการรักษาความปลอดภัยให้กับข้อมูล Cloud Storage โดยใช้กฎความปลอดภัย ในระหว่างการพัฒนา โปรดพิจารณาตั้งกฎสำหรับการเข้าถึงแบบสาธารณะ
เลือกตำแหน่งสำหรับที่เก็บข้อมูล Cloud Storage เริ่มต้น
การตั้งค่าตำแหน่งนี้เป็นตำแหน่งทรัพยากรเริ่มต้นของ Google Cloud Platform (GCP) ของโปรเจ็กต์ โปรดทราบว่าตำแหน่งนี้จะใช้สำหรับบริการ GCP ในโปรเจ็กต์ที่ต้องมีการตั้งค่าตำแหน่ง โดยเฉพาะฐานข้อมูล Cloud Firestore และแอป App Engine (ซึ่งจำเป็นหากคุณใช้ Cloud Scheduler)
หากเลือกตำแหน่งไม่ได้ แสดงว่าโปรเจ็กต์มีตำแหน่งทรัพยากร GCP เริ่มต้นอยู่แล้ว โดยค่านี้จะตั้งค่าไว้ระหว่างการสร้างโปรเจ็กต์หรือเมื่อตั้งค่าบริการอื่นที่ต้องตั้งค่าตำแหน่ง
หากใช้แพ็กเกจ Blaze คุณจะสร้างที่เก็บข้อมูลหลายรายการได้ โดยแต่ละที่เก็บข้อมูลมีตำแหน่งของตัวเอง
คลิกเสร็จ
ตั้งค่าการเข้าถึงแบบสาธารณะ
Cloud Storage for Firebase ใช้ภาษาของกฎเชิงประกาศที่ช่วยให้คุณกำหนดโครงสร้างข้อมูล วิธีที่ควรจัดทำดัชนี และเวลาที่สามารถอ่านและเขียนข้อมูลได้ โดยค่าเริ่มต้น สิทธิ์การอ่านและการเขียนใน Cloud Storage จะถูกจำกัดเพื่อให้เฉพาะผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์เท่านั้นที่อ่านหรือเขียนข้อมูลได้ หากต้องการเริ่มต้นใช้งานโดยไม่ต้องตั้งค่าการตรวจสอบสิทธิ์ คุณสามารถกำหนดค่ากฎสำหรับการเข้าถึงแบบสาธารณะได้
การดำเนินการนี้จะทำให้ Cloud Storage เปิดให้ทุกคนได้แม้กระทั่งผู้ที่ไม่ได้ใช้แอปของคุณ ดังนั้นอย่าลืมจำกัด Cloud Storage อีกครั้งเมื่อตั้งค่าการตรวจสอบสิทธิ์
เพิ่ม URL ของที่เก็บข้อมูลลงในแอป
หากยังไม่ได้รวมไว้ คุณจะต้องเพิ่ม URL ของที่เก็บข้อมูล Cloud Storage ลงในออบเจ็กต์การกำหนดค่าของแอป Firebase
ไปที่แดชบอร์ดพื้นที่เก็บข้อมูลในคอนโซล Firebase
คลิกแท็บไฟล์ จากนั้นดูที่ส่วนหัวของโปรแกรมดูไฟล์
คัดลอก URL ไปยังคลิปบอร์ด ซึ่งโดยปกติจะอยู่ในรูปแบบ
project-id.appspot.com
ในออบเจ็กต์
firebaseConfig
ในแอป ให้เพิ่มแอตทริบิวต์storageBucket
ด้วย URL ของที่เก็บข้อมูล ดังนี้
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: '' }; // 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: '[your-storage-bucket-url]' }; // 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 มีประโยชน์หากคุณมีข้อมูลที่มีรูปแบบการเข้าถึงต่างกัน ตัวอย่างเช่น คุณสามารถตั้งค่าที่เก็บข้อมูลแบบหลายภูมิภาคหรือระดับภูมิภาคที่เก็บรูปภาพหรือเนื้อหาอื่นๆ ที่มีการเข้าถึงบ่อย และที่เก็บข้อมูลแบบใกล้เคียงหรือ Coldline ที่จัดเก็บข้อมูลสำรองของผู้ใช้หรือเนื้อหาอื่นๆ ที่มีการเข้าถึงไม่บ่อย
โดยในแต่ละกรณีการใช้งาน คุณจะต้องใช้ที่เก็บข้อมูล Cloud Storage หลายรายการ
กรณีการใช้งานที่ 3 มีประโยชน์หากคุณกำลังสร้างแอปอย่าง 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://<your-cloud-storage-bucket>
คุณดูหมายเลขโปรเจ็กต์ได้ตามที่อธิบายไว้ในข้อมูลเบื้องต้นเกี่ยวกับโปรเจ็กต์ 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 เพื่อดูข้อมูลการใช้งานโดยละเอียดเพิ่มเติมได้อีกด้วย