C++ के लिए Cloud Storage के साथ शुरुआत करना

Cloud Storage for Firebase की मदद से, यूज़र जनरेटेड कॉन्टेंट (यूजीसी) अपलोड और शेयर किया जा सकता है. जैसे, इमेज और वीडियो. इससे आपको अपने ऐप्लिकेशन में रिच मीडिया कॉन्टेंट बनाने में मदद मिलती है. आपका डेटा, Google Cloud Storage बकेट में सेव किया जाता है. यह एक एक्साबाइट स्केल ऑब्जेक्ट स्टोरेज समाधान है. इसमें डेटा की उपलब्धता ज़्यादा होती है और यह दुनिया भर में मौजूद होता है. Cloud Storage for Firebase की मदद से, इन फ़ाइलों को सीधे मोबाइल डिवाइसों और वेब ब्राउज़र से सुरक्षित तरीके से अपलोड किया जा सकता है. साथ ही, नेटवर्क की समस्या होने पर भी आसानी से काम किया जा सकता है.

शुरू करने से पहले

Cloud Storage का इस्तेमाल करने से पहले, आपको ये काम करने होंगे:

  • अपने C++ प्रोजेक्ट को रजिस्टर करें और Firebase का इस्तेमाल करने के लिए इसे कॉन्फ़िगर करें.

    अगर आपके C++ प्रोजेक्ट में पहले से ही Firebase का इस्तेमाल किया जा रहा है, तो यह पहले से ही Firebase के लिए रजिस्टर और कॉन्फ़िगर किया गया है.

  • अपने C++ प्रोजेक्ट में Firebase C++ SDK जोड़ें.

ध्यान दें कि C++ प्रोजेक्ट को Firebase से जोड़ने के लिए, आपको Firebase कंसोल और खुले हुए C++ प्रोजेक्ट, दोनों में टास्क पूरे करने होंगे. उदाहरण के लिए, आपको कंसोल से Firebase कॉन्फ़िगरेशन फ़ाइलें डाउनलोड करनी होंगी. इसके बाद, उन्हें अपने C++ प्रोजेक्ट में ले जाना होगा.

यह भी पक्का करें कि आपका Firebase प्रोजेक्ट, इस्तेमाल के हिसाब से शुल्क चुकाने वाले ब्लेज़ प्लान पर हो. अगर आपने हाल ही में Firebase और Google Cloud का इस्तेमाल शुरू किया है, तो देखें कि आपको 300 डॉलर का क्रेडिट मिल सकता है या नहीं.

डिफ़ॉल्ट Cloud Storage बकेट बनाना

  1. Firebase कंसोल के नेविगेशन पैनल में जाकर, स्टोरेज को चुनें.

    अगर आपका प्रोजेक्ट, इस्तेमाल के हिसाब से पैसे चुकाने वाले Blaze प्लान पर नहीं है, तो आपको अपने प्रोजेक्ट को अपग्रेड करने के लिए कहा जाएगा.

  2. शुरू करें पर क्लिक करें.

  3. अपने डिफ़ॉल्ट बकेट के लिए जगह चुनें.

  4. अपने डिफ़ॉल्ट बकेट के लिए Firebase Security Rules को कॉन्फ़िगर करें. डेवलपमेंट के दौरान, सार्वजनिक ऐक्सेस के लिए नियम सेट अप करने पर विचार करें.

  5. हो गया पर क्लिक करें.

अब Firebase कंसोल के Cloud Storage फ़ाइलें टैब में जाकर, बकेट देखी जा सकती है. आपके डिफ़ॉल्ट बकेट का नाम इस फ़ॉर्मैट में होता है: PROJECT_ID.firebasestorage.app.

सार्वजनिक ऐक्सेस सेट अप करना

Cloud Storage for Firebase एक ऐसी भाषा उपलब्ध कराता है जिसमें नियमों को साफ़ तौर पर बताया जाता है. इससे यह तय किया जा सकता है कि आपके डेटा को कैसे स्ट्रक्चर किया जाए, उसे कैसे इंडेक्स किया जाए, और उसे कब पढ़ा और लिखा जा सकता है. डिफ़ॉल्ट रूप से, Cloud Storage को पढ़ने और लिखने का ऐक्सेस सीमित होता है. इसलिए, सिर्फ़ पुष्टि किए गए उपयोगकर्ता ही डेटा को पढ़ या लिख सकते हैं. Authentication को सेट अप किए बिना शुरू करने के लिए, सार्वजनिक ऐक्सेस के लिए अपने नियम कॉन्फ़िगर करें.

इससे Cloud Storage को कोई भी ऐक्सेस कर सकता है. यहां तक कि वे लोग भी जो आपके ऐप्लिकेशन का इस्तेमाल नहीं करते. इसलिए, पुष्टि की सुविधा सेट अप करते समय, Cloud Storage को फिर से प्रतिबंधित करना न भूलें.

firebase::App बनाना और शुरू करना

Cloud Storage को ऐक्सेस करने से पहले, आपको firebase::App बनाना और उसे शुरू करना होगा.

firebase::App के लिए हेडर फ़ाइल शामिल करें:

#include "firebase/app.h"

Android

firebase::App बनाएं. इसके लिए, JNI एनवायरमेंट और Java Activity के jobject रेफ़रंस को आर्ग्युमेंट के तौर पर पास करें:

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 बकेट का इस्तेमाल करना होगा.

तीसरा इस्तेमाल का उदाहरण तब काम आता है, जब आपको Google Drive जैसा कोई ऐप्लिकेशन बनाना हो. इस ऐप्लिकेशन में, उपयोगकर्ताओं को एक साथ कई खातों में लॉग इन करने की सुविधा मिलती है. उदाहरण के लिए, निजी खाता और ऑफ़िस से जुड़ा खाता. हर अतिरिक्त खाते की पुष्टि करने के लिए, कस्टम Firebase ऐप्लिकेशन का इस्तेमाल किया जा सकता है.

एक से ज़्यादा Cloud Storage बकेट का इस्तेमाल करना

अगर आपको ऊपर दिए गए डिफ़ॉल्ट 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 को इन फ़ाइलों को ऐक्सेस करने की अनुमति देनी होगी. इसके लिए, Google Cloud SDK में शामिल gsutil टूल का इस्तेमाल करें:

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");

अगले चरण