Cloud Storage for Firebase ช่วยให้คุณอัปโหลดและแชร์เนื้อหาที่ผู้ใช้สร้างขึ้น เช่น รูปภาพและวิดีโอ ซึ่งช่วยให้คุณสร้างเนื้อหาริชมีเดียลงในแอปได้ ระบบจะจัดเก็บข้อมูลของคุณไว้ในบัคเก็ต Google Cloud Storage ซึ่งเป็นโซลูชันพื้นที่เก็บข้อมูลออบเจ็กต์ขนาด exabyte ที่มีความพร้อมใช้งานสูงและมีการสำรองข้อมูล ทั่วโลก Cloud Storage for Firebase ช่วยให้คุณอัปโหลดไฟล์เหล่านี้ จากอุปกรณ์เคลื่อนที่และเว็บเบราว์เซอร์ได้อย่างปลอดภัย และจัดการเครือข่ายที่ไม่เสถียรได้อย่าง ง่ายดาย
ก่อนเริ่มต้น
ก่อนที่จะใช้ Cloud Storage, คุณต้องดำเนินการต่อไปนี้
ลงทะเบียนโปรเจ็กต์ C++ และกำหนดค่าให้ใช้ Firebase
หากโปรเจ็กต์ C++ ใช้ Firebase อยู่แล้ว แสดงว่าโปรเจ็กต์ได้ลงทะเบียนและกำหนดค่าสำหรับ Firebase แล้ว
เพิ่ม Firebase C++ SDK ลงในโปรเจ็กต์ C++
โปรดทราบว่าการเพิ่ม Firebase ลงในโปรเจ็กต์ C++ เกี่ยวข้องกับงานทั้งใน Firebaseคอนโซลและในโปรเจ็กต์ C++ ที่เปิดอยู่ (เช่น คุณดาวน์โหลด ไฟล์กำหนดค่า Firebase จากคอนโซล แล้วย้ายไฟล์เหล่านั้นไปยังโปรเจ็กต์ C++)
นอกจากนี้ โปรดตรวจสอบว่าโปรเจ็กต์ Firebase ของคุณใช้แพ็กเกจราคา Blaze แบบจ่ายเมื่อใช้ ซึ่งเป็นข้อกำหนดในการใช้ Cloud Storage for Firebase หากเพิ่งเคยใช้ Firebase และ Google Cloud ให้ตรวจสอบว่าคุณมีสิทธิ์รับ เครดิตช่วงทดลองใช้ฟรี$300 หรือไม่
สร้างบัคเก็ตเริ่มต้นCloud Storage
ในคอนโซลFirebase ให้ไปที่ฐานข้อมูลและพื้นที่เก็บข้อมูล > พื้นที่เก็บข้อมูล
หากโปรเจ็กต์ยังไม่ได้ใช้แพ็กเกจราคา Blaze แบบจ่ายเมื่อใช้ ระบบจะแจ้งให้คุณอัปเกรดโปรเจ็กต์
คลิกเริ่มต้นใช้งาน
เลือก ตำแหน่ง สำหรับบัคเก็ตเริ่มต้น
บัคเก็ตใน
,US-CENTRAL1 และUS-EAST1 สามารถใช้ประโยชน์จาก "ใช้งานฟรีตลอดไป" ระดับ สำหรับ Google Cloud Storage ได้ บัคเก็ตในตำแหน่งอื่นๆ ทั้งหมดจะเป็นไปตาม Google Cloud Storage ราคาและการใช้งานUS-WEST1คุณสามารถสร้างบัคเก็ตหลายรายการในภายหลัง โดยแต่ละรายการจะมี ตำแหน่งของตัวเอง
กำหนดค่า Firebase Security Rules สำหรับบัคเก็ตเริ่มต้น ในระหว่างการพัฒนา ให้พิจารณา ตั้งค่ากฎสำหรับการเข้าถึงแบบสาธารณะ
คลิกเสร็จสิ้น
ตอนนี้คุณสามารถดูบัคเก็ตในคอนโซล Firebase ได้แล้ว (ไปที่แท็บ
ฐานข้อมูลและพื้นที่เก็บข้อมูล > พื้นที่เก็บข้อมูล >
ไฟล์)
รูปแบบชื่อบัคเก็ตเริ่มต้นคือ PROJECT_ID.firebasestorage.app
ตั้งค่าการเข้าถึงแบบสาธารณะ
Cloud Storage for Firebase มีภาษาของกฎแบบประกาศที่ช่วยให้คุณ กำหนดโครงสร้างของข้อมูล วิธีจัดทำดัชนี และเวลาที่ อ่านและเขียนข้อมูลได้ โดยค่าเริ่มต้น การเข้าถึงแบบอ่านและเขียนไปยัง Cloud Storage จะถูกจำกัดเพื่อให้เฉพาะผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์เท่านั้นที่จะอ่านหรือเขียน ข้อมูลได้ หากต้องการเริ่มต้นใช้งานโดยไม่ต้องตั้งค่า Authentication คุณสามารถ กำหนดค่ากฎสำหรับการเข้าถึงแบบสาธารณะได้
การดำเนินการนี้จะทำให้ Cloud Storage เปิดให้ทุกคนเข้าถึงได้ แม้แต่ผู้ที่ไม่ได้ใช้ แอปของคุณ ดังนั้นโปรดอย่าลืมจำกัด Cloud Storage อีกครั้งเมื่อตั้งค่า การตรวจสอบสิทธิ์
สร้างและเริ่มต้น firebase::App
คุณต้องสร้างและเริ่มต้น
firebase::App ก่อนจึงจะเข้าถึง Cloud Storage ได้
รวมไฟล์ส่วนหัวสำหรับ firebase::App ดังนี้
#include "firebase/app.h"
Android
สร้าง firebase::App โดยส่งสภาพแวดล้อม JNI และการอ้างอิง jobject ไปยังกิจกรรม Java เป็นอาร์กิวเมนต์
app = App::Create(AppOptions(), jni_env, activity);
iOS+
สร้าง firebase::App ดังนี้
app = App::Create(AppOptions());
เข้าถึงชั้นเรียน firebase::storage::Storage
คลาส firebase::storage::Storage เป็นจุดเริ่มต้นสำหรับ Cloud Storage C++ SDK
Storage* storage = Storage::GetInstance(app);
คุณพร้อมที่จะเริ่มใช้ Cloud Storage แล้ว
ขั้นตอนถัดไป ดูวิธีสร้างการอ้างอิง Cloud Storage
การตั้งค่าขั้นสูง
มีกรณีการใช้งานบางกรณีที่ต้องมีการตั้งค่าเพิ่มเติม ดังนี้
- การใช้บัคเก็ต Cloud Storage ใน หลายภูมิภาคทางภูมิศาสตร์
- การใช้บัคเก็ต Cloud Storage ใน คลาสพื้นที่เก็บข้อมูลต่างๆ
- การใช้บัคเก็ต Cloud Storage กับผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์หลายรายในแอปเดียวกัน
กรณีการใช้งานแรกเหมาะอย่างยิ่งหากคุณมีผู้ใช้ทั่วโลกและต้องการจัดเก็บข้อมูลของผู้ใช้ไว้ใกล้กับผู้ใช้ ตัวอย่างเช่น คุณสามารถสร้าง Bucket ในสหรัฐอเมริกา ยุโรป และเอเชียเพื่อจัดเก็บข้อมูลสำหรับผู้ใช้ในภูมิภาคเหล่านั้นเพื่อลดเวลาในการตอบสนอง
กรณีการใช้งานที่ 2 มีประโยชน์หากคุณมีข้อมูลที่มีรูปแบบการเข้าถึงที่แตกต่างกัน ตัวอย่างเช่น คุณสามารถตั้งค่า Bucket แบบหลายภูมิภาคหรือแบบภูมิภาคที่จัดเก็บรูปภาพหรือเนื้อหาอื่นๆ ที่มีการเข้าถึงบ่อย และ Bucket แบบ Nearline หรือ Coldline ที่จัดเก็บข้อมูลสำรองของผู้ใช้หรือเนื้อหาอื่นๆ ที่มีการเข้าถึงไม่บ่อย
ในกรณีการใช้งานเหล่านี้ คุณจะต้องใช้ บัคเก็ตCloud Storageหลายรายการ
กรณีการใช้งานที่ 3 มีประโยชน์หากคุณกำลังสร้างแอป เช่น Google ไดรฟ์ ซึ่งอนุญาตให้ผู้ใช้มีบัญชีที่เข้าสู่ระบบหลายบัญชี (เช่น บัญชีส่วนตัวและบัญชีงาน) คุณสามารถใช้อินสแตนซ์ Firebase App ที่กำหนดเอง เพื่อตรวจสอบสิทธิ์บัญชีเพิ่มเติมแต่ละบัญชีได้
ใช้บัคเก็ตหลายรายการCloud Storage
หากต้องการใช้บัคเก็ต Cloud Storage อื่นนอกเหนือจากบัคเก็ตเริ่มต้นที่ระบุไว้ข้างต้น
หรือใช้บัคเก็ต Cloud Storage หลายรายการในแอปเดียว คุณสามารถสร้างอินสแตนซ์
ของ firebase::storage::Storage ที่อ้างอิงบัคเก็ตที่กำหนดเองได้ดังนี้
// Get a non-default Cloud Storage bucket Storage* storage = Storage::GetInstance("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 App ที่กำหนดเอง
หากคุณกำลังสร้างแอปที่ซับซ้อนมากขึ้นโดยใช้ firebase::App ที่กำหนดเอง คุณสามารถสร้างอินสแตนซ์ firebase::storage::Storage ที่เริ่มต้นด้วยแอปนั้นได้ดังนี้
// Get the default bucket from a custom firebase::App Storage* storage = Storage::GetInstance(customApp); // Get a non-default bucket from a custom firebase::App Storage* storage = Storage::GetInstance(customApp, "gs://my-custom-bucket");
ขั้นตอนถัดไป
เตรียมพร้อมเปิดตัวแอป
- ตั้งค่า การแจ้งเตือน งบประมาณ สำหรับโปรเจ็กต์ในคอนโซล Google Cloud
- ตรวจสอบแดชบอร์ดการใช้งานและการเรียกเก็บเงิน ในคอนโซลFirebase เพื่อดูภาพรวมการใช้งานโปรเจ็กต์ ในบริการ Firebase หลายรายการ นอกจากนี้ คุณยังไปที่แดชบอร์ด Cloud Storage การใช้งานของ Cloud Storage เพื่อดูข้อมูลการใช้งานโดยละเอียดเพิ่มเติมได้ด้วย
- ตรวจสอบรายการตรวจสอบการเปิดตัว Firebase