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

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

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

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

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

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

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

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

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

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

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

  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.2"))

    // 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 को इन फ़ाइलों को ऐक्सेस करने की अनुमति देनी होगी. इसके लिए, 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 ऐप्लिकेशन का इस्तेमाल करना

अगर आपको पसंद के मुताबिक बनाए गए 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");

अगले चरण