เริ่มต้นใช้งาน Cloud Storage สำหรับ C++

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

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

คุณต้องดำเนินการต่อไปนี้ก่อนจึงจะใช้ Cloud Storage ได้

  • ลงทะเบียนโปรเจ็กต์ C++ และกําหนดค่าให้ใช้ Firebase

    หากโปรเจ็กต์ C++ ใช้ Firebase อยู่แล้ว ก็แสดงว่าได้ลงทะเบียนและ กำหนดค่าสำหรับ Firebase แล้ว

  • เพิ่ม Firebase C++ SDK ลงในโปรเจ็กต์ C++

โปรดทราบว่าการเพิ่ม Firebase ลงในโปรเจ็กต์ C++ เกี่ยวข้องกับงานทั้งในFirebaseคอนโซลและในโปรเจ็กต์ C++ ที่เปิดอยู่ (เช่น คุณดาวน์โหลดไฟล์การกำหนดค่า Firebase จากคอนโซล จากนั้นย้ายไฟล์เหล่านั้นไปยังโปรเจ็กต์ C++)

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

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

  1. ในFirebaseคอนโซล ให้ไปที่ฐานข้อมูลและพื้นที่เก็บข้อมูล > พื้นที่เก็บข้อมูล

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

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

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

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

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

ตอนนี้คุณดูที่เก็บข้อมูลได้ใน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ข้อมูลอ้างอิง

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

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

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

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

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

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

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

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

// 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 ที่กำหนดเอง

หากคุณกำลังสร้างแอปที่ซับซ้อนมากขึ้นโดยใช้ 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");

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