เริ่มต้นใช้งาน 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++)

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

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

  2. ตรวจสอบข้อความเกี่ยวกับการรักษาความปลอดภัยให้กับข้อมูล Cloud Storage โดยใช้กฎความปลอดภัย ในระหว่างการพัฒนา โปรดพิจารณาตั้งกฎสำหรับการเข้าถึงแบบสาธารณะ

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

    • การตั้งค่าตำแหน่งนี้เป็นตำแหน่งทรัพยากรเริ่มต้นของ Google Cloud Platform (GCP) ของโปรเจ็กต์ โปรดทราบว่าตำแหน่งนี้จะใช้สำหรับบริการ GCP ในโปรเจ็กต์ที่ต้องมีการตั้งค่าตำแหน่ง โดยเฉพาะฐานข้อมูล Cloud Firestore และแอป App Engine (ซึ่งจำเป็นหากคุณใช้ Cloud Scheduler)

    • หากเลือกตำแหน่งไม่ได้ แสดงว่าโปรเจ็กต์มีตำแหน่งทรัพยากร GCP เริ่มต้นอยู่แล้ว โดยค่านี้จะตั้งค่าไว้ระหว่างการสร้างโปรเจ็กต์หรือเมื่อตั้งค่าบริการอื่นที่ต้องตั้งค่าตำแหน่ง

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

  4. คลิกเสร็จ

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

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

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

สร้างและเริ่มต้น firebase::App

ก่อนที่จะเข้าถึง Cloud Storage ได้ คุณจะต้องสร้างและเริ่มต้นfirebase::App

รวมไฟล์ส่วนหัวสำหรับ 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 มีประโยชน์หากคุณมีข้อมูลที่มีรูปแบบการเข้าถึงต่างกัน ตัวอย่างเช่น คุณสามารถตั้งค่าที่เก็บข้อมูลแบบหลายภูมิภาคหรือระดับภูมิภาคที่เก็บรูปภาพหรือเนื้อหาอื่นๆ ที่มีการเข้าถึงบ่อย และที่เก็บข้อมูลแบบใกล้เคียงหรือ Coldline ที่จัดเก็บข้อมูลสำรองของผู้ใช้หรือเนื้อหาอื่นๆ ที่มีการเข้าถึงไม่บ่อย

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

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

ใช้ที่เก็บข้อมูล 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://<your-cloud-storage-bucket>

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

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

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

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

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