Android पर Cloud Storage का इस्तेमाल शुरू करना

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

ज़रूरी शर्तें

अगर आपने पहले से ऐसा नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.

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

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

  2. सुरक्षा के नियमों का इस्तेमाल करके, Cloud Storage का डेटा सुरक्षित करने के बारे में मैसेज की समीक्षा करें. डेवलपमेंट के दौरान, सार्वजनिक ऐक्सेस के लिए अपने नियम सेट करें.

  3. अपनी डिफ़ॉल्ट Cloud Storage बकेट के लिए, कोई जगह चुनें.

    • जगह की यह सेटिंग, आपके प्रोजेक्ट के लिए, Google Cloud Platform (GCP) के संसाधन की डिफ़ॉल्ट जगह होती है. ध्यान दें कि इस जगह का इस्तेमाल आपके प्रोजेक्ट में GCP सेवाओं के लिए किया जाएगा. जिनके लिए जगह की जानकारी की सेटिंग ज़रूरी है, खास तौर पर Cloud Firestore डेटाबेस और आपका App Engine ऐप्लिकेशन (अगर Cloud शेड्यूलर इस्तेमाल किया जा रहा है, तो ऐसा करना ज़रूरी है).

    • अगर जगह चुनने में समस्या आ रही है, तो आपके प्रोजेक्ट में पहले से ही डिफ़ॉल्ट GCP संसाधन लोकेशन है. इसे या तो प्रोजेक्ट बनाते समय या ऐसी अन्य सेवा सेट अप करते समय सेट किया गया था जिसके लिए जगह की जानकारी की ज़रूरत होती है.

    अगर आप ब्लेज़ प्लान में हैं, तो आपके पास कई बकेट बनाने का विकल्प होगा. हर बकेट की अपनी जगह होगी.

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

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

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

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

अपने ऐप्लिकेशन में Cloud Storage SDK टूल जोड़ना

अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle), Android के लिए, Cloud Storage लाइब्रेरी के लिए डिपेंडेंसी जोड़ें. लाइब्रेरी वर्शन को कंट्रोल करने के लिए, Firebase Android BoM का इस्तेमाल करने का सुझाव दिया जाता है.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:33.1.1"))

    // Add the dependency for the Cloud Storage library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-storage")
}

Firebase Android BoM का इस्तेमाल करने पर, आपका ऐप्लिकेशन हमेशा Firebase की Android लाइब्रेरी के साथ काम करने वाले वर्शन का इस्तेमाल करेगा.

(अन्य) BoM का इस्तेमाल किए बिना Firebase लाइब्रेरी डिपेंडेंसी जोड़ें

अगर आपको Firebase BoM का इस्तेमाल नहीं करना है, तो आपको हर Firebase लाइब्रेरी के वर्शन को उसकी डिपेंडेंसी लाइन में बताना होगा.

ध्यान दें कि अगर आपके ऐप्लिकेशन में एक से ज़्यादा Firebase लाइब्रेरी का इस्तेमाल किया जाता है, तो हमारा सुझाव है कि लाइब्रेरी वर्शन मैनेज करने के लिए, BoM का इस्तेमाल करें. इससे यह पक्का होता है कि आपके ऐप्लिकेशन के सभी वर्शन, ऐप्लिकेशन के साथ काम करें.

dependencies {
    // Add the dependency for the Cloud Storage library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-storage:21.0.0")
}
क्या आपको Kotlin के लिए खास लाइब्रेरी मॉड्यूल की तलाश है? अक्टूबर 2023 (Firebase BoM 32.5.0) से, Kotlin और Java डेवलपर, दोनों के मुख्य लाइब्रेरी मॉड्यूल पर निर्भर हो सकते हैं. ज़्यादा जानकारी के लिए, इस पहल के बारे में अक्सर पूछे जाने वाले सवाल देखें.

Cloud Storage सेट अप करना

Cloud Storage बकेट ऐक्सेस करने का पहला चरण है, FirebaseStorage का इंस्टेंस बनाना:

Kotlin+KTX

storage = Firebase.storage

Java

FirebaseStorage storage = FirebaseStorage.getInstance();

आप Cloud Storage का इस्तेमाल करने के लिए तैयार हैं!

आइए, सबसे पहले Cloud Storage के रेफ़रंस बनाने का तरीका जानें.

बेहतर सेटअप

इस्तेमाल के कुछ उदाहरणों के लिए, अतिरिक्त सेटअप की ज़रूरत होती है:

अगर आपके पास दुनिया भर के उपयोगकर्ता हैं और आपको अपना डेटा अपने आस-पास स्टोर करना है, तो इस्तेमाल का पहला उदाहरण बिलकुल सही होगा. उदाहरण के लिए, अमेरिका, यूरोप, और एशिया में डेटा सेव करने के लिए बकेट बनाई जा सकती हैं. इससे, इंतज़ार का समय कम करने के लिए, इन क्षेत्रों के उपयोगकर्ताओं का डेटा सेव किया जा सकता है.

अगर आपके पास अलग-अलग ऐक्सेस पैटर्न वाला डेटा है, तो इस्तेमाल का दूसरा उदाहरण मददगार होता है. उदाहरण के लिए: कई इलाकों या इलाकों के हिसाब से बनाया गया बकेट सेट अप किया जा सकता है, जिसमें फ़ोटो या अक्सर ऐक्सेस किए जाने वाले अन्य कॉन्टेंट सेव किए जाते हैं. साथ ही, नियरलाइन या कोल्डलाइन बकेट सेट अप की जा सकती है, जिसमें उपयोगकर्ता का बैकअप या कभी-कभी ऐक्सेस किया जाने वाला कॉन्टेंट सेव होता है.

इनमें से किसी भी मामले में, आपको Cloud Storage की एक से ज़्यादा बकेट का इस्तेमाल करना होगा.

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

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

अगर आपको ऊपर दी गई डिफ़ॉल्ट बकेट के बजाय, Cloud Storage बकेट का इस्तेमाल करना है या किसी एक ऐप्लिकेशन में एक से ज़्यादा Cloud Storage बकेट का इस्तेमाल करना है, तो FirebaseStorage का ऐसा इंस्टेंस बनाएं जो आपके कस्टम बकेट की जानकारी देता हो:

Kotlin+KTX

// Get a non-default Storage bucket
val storage = Firebase.storage("gs://my-custom-bucket")

Java

// Get a non-default Storage bucket
FirebaseStorage storage = FirebaseStorage.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://<your-cloud-storage-bucket>

आपको अपना प्रोजेक्ट नंबर, Firebase प्रोजेक्ट के बारे में जानकारी में बताए गए तरीके से मिल जाएगा.

इससे बनाए गए नए बकेट पर असर नहीं पड़ता, क्योंकि Firebase को अनुमति देने के लिए उनमें डिफ़ॉल्ट ऐक्सेस कंट्रोल सेट होता है. यह अस्थायी कार्रवाई है और आने वाले समय में इसे अपने-आप पूरा किया जाएगा.

पसंद के मुताबिक Firebase ऐप्लिकेशन का इस्तेमाल करें

अगर पसंद के मुताबिक FirebaseApp का इस्तेमाल करके ज़्यादा मुश्किल ऐप्लिकेशन बनाया जा रहा है, तो उस ऐप्लिकेशन से शुरू किए गए FirebaseStorage का इंस्टेंस बनाया जा सकता है:

Kotlin+KTX

// Get the default bucket from a custom FirebaseApp
val storage = Firebase.storage(customApp!!)

// Get a non-default bucket from a custom FirebaseApp
val customStorage = Firebase.storage(customApp, "gs://my-custom-bucket")

Java

// Get the default bucket from a custom FirebaseApp
FirebaseStorage storage = FirebaseStorage.getInstance(customApp);

// Get a non-default bucket from a custom FirebaseApp
FirebaseStorage customStorage = FirebaseStorage.getInstance(customApp, "gs://my-custom-bucket");

अगले चरण