Admin Cloud Storage API के बारे में जानकारी

Cloud Storage for Firebase आपके डेटा को Google Cloud Storage बकेट में सेव करता है. यह एक्साबाइट स्केल का ऑब्जेक्ट स्टोरेज समाधान है, जो दुनिया भर में उपलब्ध है और जिसमें डेटा की डुप्लीकेट कॉपी सेव करने की सुविधा है. Firebase Admin SDK टूल की मदद से, खास अधिकारों वाले एनवायरमेंट से सीधे अपनी Cloud Storage बकेट को ऐक्सेस किया जा सकता है. इसके बाद, बकेट में सेव किए गए ऑब्जेक्ट में बदलाव करने के लिए, Google Cloud Storage एपीआई का इस्तेमाल किया जा सकता है.

Admin SDK टूल की मदद से, शेयर किए जा सकने वाले यूआरएल भी बनाए जा सकते हैं. इससे उपयोगकर्ता आपकी बकेट में मौजूद ऑब्जेक्ट डाउनलोड कर सकते हैं.

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

डिफ़ॉल्ट बकेट का इस्तेमाल करना

Admin SDK टूल को शुरू करते समय, डिफ़ॉल्ट बकेट का नाम बताया जा सकता है. इसके बाद, इस बकेट का पुष्टि किया गया रेफ़रंस वापस पाया जा सकता है.

बकेट के नाम में gs:// या प्रोटोकॉल के अन्य प्रीफ़िक्स नहीं होने चाहिए. उदाहरण के लिए, अगर कंसोल में दिखने वाला बकेट यूआरएल Firebase है gs://PROJECT_ID.firebasestorage.app, तो Admin SDK टूल को PROJECT_ID.firebasestorage.app स्ट्रिंग पास करें.

Node.js

const { initializeApp, cert } = require('firebase-admin/app');
const { getStorage } = require('firebase-admin/storage');

const serviceAccount = require('./path/to/serviceAccountKey.json');

initializeApp({
  credential: cert(serviceAccount),
  storageBucket: '<BUCKET_NAME>.appspot.com'
});

const bucket = getStorage().bucket();

// 'bucket' is an object defined in the @google-cloud/storage library.
// See https://googlecloudplatform.github.io/google-cloud-node/#/docs/storage/latest/storage/bucket
// for more details.

Java

FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json");

FirebaseOptions options = FirebaseOptions.builder()
    .setCredentials(GoogleCredentials.fromStream(serviceAccount))
    .setStorageBucket("<BUCKET_NAME>.appspot.com")
    .build();
FirebaseApp.initializeApp(options);

Bucket bucket = StorageClient.getInstance().bucket();

// 'bucket' is an object defined in the google-cloud-storage Java library.
// See https://cloud.google.com/java/docs/reference/google-cloud-storage/latest/com.google.cloud.storage.Bucket
// for more details.

Python

import firebase_admin
from firebase_admin import credentials
from firebase_admin import storage

cred = credentials.Certificate('path/to/serviceAccountKey.json')
firebase_admin.initialize_app(cred, {
    'storageBucket': 'PROJECT_ID.firebasestorage.app'
})

bucket = storage.bucket()

# 'bucket' is an object defined in the google-cloud-storage Python library.
# See https://googlecloudplatform.github.io/google-cloud-python/latest/storage/buckets.html
# for more details.

Go

import (
	"context"
	"log"

	firebase "firebase.google.com/go/v4"
	"firebase.google.com/go/v4/auth"
	"google.golang.org/api/option"
)

config := &firebase.Config{
	StorageBucket: "<BUCKET_NAME>.appspot.com",
}
opt := option.WithCredentialsFile("path/to/serviceAccountKey.json")
app, err := firebase.NewApp(context.Background(), config, opt)
if err != nil {
	log.Fatalln(err)
}

client, err := app.Storage(context.Background())
if err != nil {
	log.Fatalln(err)
}

bucket, err := client.DefaultBucket()
if err != nil {
	log.Fatalln(err)
}
// 'bucket' is an object defined in the cloud.google.com/go/storage package.
// See https://godoc.org/cloud.google.com/go/storage#BucketHandle
// for more details.

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

कस्टम बकेट का इस्तेमाल करना

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

Node.js

const bucket = getStorage().bucket('my-custom-bucket');

Java

Bucket bucket = StorageClient.getInstance().bucket("my-custom-bucket");

Python

bucket = storage.bucket('my-custom-bucket')

Go

 bucket, err := client.Bucket("my-custom-bucket")

कस्टम Firebase ऐप्लिकेशन का इस्तेमाल करना

अगर कोई ऐसा जटिल ऐप्लिकेशन बनाया जा रहा है जो कई Firebase ऐप्लिकेशनके साथ इंटरैक्ट करता है, तो किसी खास Firebase ऐप्लिकेशन से जुड़ी Cloud Storage बकेट को इस तरह ऐक्सेस किया जा सकता है:

Node.js

const bucket = getStorage(customApp).bucket();

Java

Bucket bucket = StorageClient.getInstance(customApp).bucket();

Python

bucket = storage.bucket(app=custom_app)

Go

otherClient, err := otherApp.Storage(context.Background())
bucket, err := otherClient.Bucket("other-app-bucket")

डाउनलोड करने का शेयर किया जा सकने वाला यूआरएल पाना

Admin SDK का इस्तेमाल करके, अपनी बकेट में सेव की गई फ़ाइलों के लिए, डाउनलोड करने का ऐसा यूआरएल जनरेट किया जा सकता है जिसकी समयसीमा खत्म नहीं होती. इस यूआरएल के ज़रिए, कोई भी व्यक्ति हमेशा के लिए फ़ाइल को ऐक्सेस कर सकता है.

Node.js

const { getStorage, getDownloadURL } = require('firebase-admin/storage');

const fileRef = getStorage().bucket('my-bucket').file('my-file');
const downloadURL= await getDownloadURL(fileRef);

Google Cloud Storage क्लाइंट लाइब्रेरी

Firebase Admin SDK टूल, Google Cloud Storage क्लाइंट लाइब्रेरी ऐक्सेस Cloud Storage करने की सुविधा देने के लिए, पर निर्भर करते हैं. Admin SDK टूल से मिले बकेट रेफ़रंस, इन लाइब्रेरी में तय किए गए ऑब्जेक्ट होते हैं. फ़ाइल अपलोड और डाउनलोड जैसे इस्तेमाल के उदाहरणों में, मिले बकेट रेफ़रंस का इस्तेमाल करने का तरीका जानने के लिए, Google Cloud Storage क्लाइंट लाइब्रेरी के दस्तावेज़ और एपीआई रेफ़रंस देखें.