了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Google क्लाउड के साथ एकीकृत करें

फायरबेस के लिए क्लाउड स्टोरेज को Google क्लाउड के साथ मजबूती से एकीकृत किया गया है। क्लाउड स्टोरेज के लिए फायरबेस एसडीके फाइलों को सीधे Google क्लाउड स्टोरेज बकेट में स्टोर करते हैं, और जैसे-जैसे आपका ऐप बढ़ता है, आप आसानी से अन्य Google क्लाउड सेवाओं को एकीकृत कर सकते हैं, जैसे ऐप इंजन या क्लाउड फ़ंक्शंस जैसी प्रबंधित गणना, या क्लाउड विज़न या Google जैसी मशीन लर्निंग एपीआई अनुवाद करना।

फायरबेस उपयोगकर्ता क्रेडेंशियल साझा किए बिना सेवाओं को संचालित और प्रबंधित करने के लिए Google क्लाउड सेवा खातों का उपयोग करता है। जब आप क्लाउड स्टोरेज का उपयोग करने वाला फायरबेस प्रोजेक्ट बनाते हैं, तो आप देख सकते हैं कि संबंधित सेवा खाता पहले से ही आपके प्रोजेक्ट में उपलब्ध है: service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com । अधिक जानकारी के लिए यह फायरबेस सपोर्ट गाइड देखें।

हुड के तहत, क्लाउड स्टोरेज के लिए फायरबेस एसडीके ऐप इंजन नो-कॉस्ट टियर में डिफ़ॉल्ट बकेट का उपयोग करते हैं। यह आपको बिना क्रेडिट कार्ड डाले या क्लाउड बिलिंग खाते को सक्षम किए बिना क्लाउड स्टोरेज के साथ जल्दी से उठने और चलाने की अनुमति देता है। यह आपको Firebase और Google क्लाउड प्रोजेक्ट के बीच आसानी से डेटा साझा करने की सुविधा भी देता है।

मौजूदा क्लाउड स्टोरेज बकेट को आयात करने सहित, Google क्लाउड के साथ एकीकृत करने के लिए ब्लेज़ योजना पर फायरबेस प्रोजेक्ट की आवश्यकता होती है। हमारे मूल्य निर्धारण पृष्ठ पर योजनाओं के बारे में अधिक जानें।

Google क्लाउड स्टोरेज

आप क्लाउड स्टोरेज के लिए फायरबेस एसडीके के माध्यम से अपलोड की गई फ़ाइलों तक पहुंचने के लिए Google क्लाउड स्टोरेज एपीआई का उपयोग कर सकते हैं, विशेष रूप से अधिक जटिल संचालन करने के लिए, जैसे फ़ाइल को कॉपी करना या स्थानांतरित करना, या किसी संदर्भ में उपलब्ध सभी फाइलों को सूचीबद्ध करना।

यह ध्यान रखना महत्वपूर्ण है कि ये अनुरोध फायरबेस प्रमाणीकरण और क्लाउड स्टोरेज सुरक्षा नियमों के बजाय Google क्लाउड स्टोरेज एक्सेस कंट्रोल विकल्पों का उपयोग करते हैं।

शहद की मक्खी

क्लाउड स्टोरेज के लिए फायरबेस एसडीके के अलावा, आपके क्लाउड स्टोरेज बकेट में संग्रहीत डेटा तक पहुंचने के कई अन्य तरीके हैं, जो इस बात पर निर्भर करता है कि आप क्या करना चाहते हैं। यदि आप किसी सर्वर पर डेटा एक्सेस कर रहे हैं, तो हम सर्वर साइड लाइब्रेरी, साथ ही JSON और S3 संगत XML RESTful API प्रदान करते हैं, या यदि आपको स्क्रिप्ट परिवर्तन या अन्य प्रशासनिक कार्य करने की आवश्यकता है, तो हमारे पास एक कमांड लाइन टूल है जो काम आएगा।

Google मेघ सर्वर SDKs

Google क्लाउड, क्लाउड स्टोरेज सहित कई क्लाउड उत्पादों के लिए उच्च-गुणवत्ता वाले सर्वर SDK प्रदान करता है। ये पुस्तकालय Node.js , Java , go , Python , PHP , और Ruby में उपलब्ध हैं।

इंस्टॉलेशन निर्देशों, प्रमाणीकरण और समस्या निवारण सहित अधिक जानकारी के लिए, ऊपर लिंक किए गए प्लेटफ़ॉर्म-विशिष्ट दस्तावेज़ देखें।

Google क्लाउड स्टोरेज SDK के उपयोग का उदाहरण नीचे दिखाया गया है:

नोड.जेएस

    // Require gcloud
    var gcloud = require('google-cloud');

    // Enable Cloud Storage
    var gcs = gcloud.storage({
      projectId: 'grape-spaceship-123',
      keyFilename: '/path/to/keyfile.json'
    });

    // Reference an existing bucket.
    var bucket = gcs.bucket('my-existing-bucket');

    // Upload a local file to a new file to be created in your bucket.
    bucket.upload('/photos/zoo/zebra.jpg', function(err, file) {
      if (!err) {
        // "zebra.jpg" is now in your bucket.
      }
    });

    // Download a file from your bucket.
    bucket.file('giraffe.jpg').download({
      destination: '/photos/zoo/giraffe.jpg'
    }, function(err) {});
    

जावा

    // Enable Cloud Storage
    Storage storage = StorageOptions.builder()
      .authCredentials(AuthCredentials.createForJson(new FileInputStream("/path/to/my/key.json"))
      .build()
      .service();

    // Upload a local file to a new file to be created in your bucket.
    InputStream uploadContent = ...
    BlobId blobId = BlobId.of("my-existing-bucket", "zebra.jpg");
    BlobInfo blobInfo = BlobInfo.builder(blobId).contentType("text/plain").build();
    Blob zebraBlob = storage.create(blobInfo, content);

    // Download a file from your bucket.
    Blob giraffeBlob = storage.get("my-existing-bucket", "giraffe.jpg", null);
    InputStream downloadContent = giraffeBlob.getInputStream();
    

जाना

    // Enable Cloud Storage
    client, err := storage.NewClient(ctx, option.WithServiceAccountFile("path/to/keyfile.json"))
    if err != nil {
        log.Fatal(err)
    }

    // Download a file from your bucket.
    rc, err := client.Bucket("my-existing-bucket").Object("giraffe.jpg").NewReader(ctx)
    if err != nil {
        log.Fatal(err)
    }
    defer rc.Close()
    body, err := ioutil.ReadAll(rc)
    if err != nil {
        log.Fatal(err)
    }
    

अजगर

    # Import gcloud
    from google.cloud import storage

    # Enable Cloud Storage
    client = storage.Client()

    # Reference an existing bucket.
    bucket = client.get_bucket('my-existing-bucket')

    # Upload a local file to a new file to be created in your bucket.
    zebraBlob = bucket.get_blob('zebra.jpg')
    zebraBlob.upload_from_filename(filename='/photos/zoo/zebra.jpg')

    # Download a file from your bucket.
    giraffeBlob = bucket.get_blob('giraffe.jpg')
    giraffeBlob.download_as_string()
    

पीएचपी

    // Require gcloud
    require 'vendor/autoload.php';
    use Google\Cloud\Storage\StorageClient;

    // Enable Cloud Storage
    $storage = new StorageClient([
        'projectId' => 'grape-spaceship-123'
    ]);

    // Reference an existing bucket.
    $bucket = $storage->bucket('my-existing-bucket');

    // Upload a file to the bucket.
    $bucket->upload(
        fopen('/photos/zoo/zebra.jpg', 'r')
    );

    // Download a file from your bucket.
    $object = $bucket->object('giraffe.jpg');
    $object->downloadToFile('/photos/zoo/giraffe.jpg');
    

माणिक

    # Require gcloud
    require "google/cloud"

    # Enable Cloud Storage
    gcloud = Google::Cloud.new "grape-spaceship-123", "/path/to/keyfile.json"
    storage = gcloud.storage

    # Reference an existing bucket.
    bucket = storage.bucket "my-existing-bucket"

    # Upload a file to the bucket.
    bucket.create_file "/photos/zoo/zebra.jpg", "zebra.jpg"

    # Download a file from your bucket.
    file = bucket.file "giraffe.jpg"
    file.download "/photos/zoo/#{file.name}"
    

बाकी एपीआई

यदि आप क्लाइंट लाइब्रेरी के बिना किसी भाषा का उपयोग कर रहे हैं, तो कुछ ऐसा करना चाहते हैं जो क्लाइंट लाइब्रेरी नहीं करते हैं, या बस एक पसंदीदा HTTP क्लाइंट है जिसे आप उपयोग करना पसंद करेंगे, Google क्लाउड स्टोरेज JSON और XML दोनों के लिए API प्रदान करता है .

इन स्टोरेज डेटा एक्सेस एपीआई के अलावा, फायरबेस प्रोजेक्ट में उपयोग के लिए क्लाउड स्टोरेज बकेट को प्रबंधित करने के लिए, आप फायरबेस एपीआई के लिए क्लाउड स्टोरेज का उपयोग कर सकते हैं।

gsutil

gsutil एक कमांड लाइन टूल है जो आपको क्लाउड स्टोरेज तक सीधी पहुँच प्रदान करता है। आप बाल्टी और वस्तु प्रबंधन कार्यों की एक विस्तृत श्रृंखला करने के लिए gsutil उपयोग कर सकते हैं, जिनमें निम्न शामिल हैं:

  • वस्तुओं को अपलोड करना, डाउनलोड करना और हटाना।
  • बाल्टी और वस्तुओं को सूचीबद्ध करना।
  • वस्तुओं को हिलाना, कॉपी करना और नाम बदलना।
  • संपादन वस्तु और बाल्टी एसीएल।

gsutil अन्य उन्नत संचालनों की अनुमति देता है, जैसे फ़ाइलों को एक निर्देशिका से दूसरी निर्देशिका में ले जाना, या किसी निश्चित स्थान के नीचे की सभी फ़ाइलों को हटाना।

सभी फाइलों को एक संदर्भ से दूसरे संदर्भ में ले जाना उतना ही आसान है जितना:

gsutil mv gs://bucket/old/reference gs://bucket/new/reference

एक संदर्भ के नीचे सभी फाइलों को बैच हटाना समान रूप से सहज है:

# Delete all files under a path
gsutil rm -r gs://bucket/reference/to/delete

# Delete all the files in a bucket but not the bucket gsutil rm -r gs://bucket/**

# Delete all the files AND the bucket # Removing the default bucket will break the Firebase SDKs for Cloud Storage and is strongly discouraged gsutil rm -r gs://bucket

अनुरोध दर

Google क्लाउड स्टोरेज एक अत्यधिक स्केलेबल सेवा है जो बहुत अधिक अनुरोध दर प्राप्त करने के लिए ऑटो-स्केलिंग तकनीक का उपयोग करती है।

Google क्लाउड स्टोरेज एक बहु-किरायेदार सेवा है, जिसका अर्थ है कि उपयोगकर्ता अंतर्निहित संसाधनों का समान सेट साझा करते हैं। इन साझा संसाधनों का सर्वोत्तम उपयोग करने के लिए, बकेट में प्रारंभिक IO क्षमता होती है।

जैसा कि आप अपने ऐप में फायरबेस के लिए क्लाउड स्टोरेज को एकीकृत करने की योजना बना रहे हैं, एक न्यूनतम अनुरोध दर के बारे में सोचें जो आपके ऐप को अच्छे प्रदर्शन के लिए और कुशलता से अनुरोध करने के लिए चाहिए। अनुरोध दरों के बारे में दिशानिर्देशों की समीक्षा करें, और विशेष रूप से अनुरोध दरों में वृद्धि करें

ऑब्जेक्ट वर्जनिंग

क्या आपने कभी दुर्घटनावश कुछ मिटाया है और उसका बैकअप नहीं था? Google क्लाउड स्टोरेज ऑब्जेक्ट वर्जनिंग का समर्थन करता है, जो आपके डेटा का बैकअप लेने और उन बैकअप से पुनर्स्थापित करने का एक स्वचालित तरीका प्रदान करता है। आप gsutil versioning set कमांड का उपयोग करके ऑब्जेक्ट वर्जनिंग को सक्षम कर सकते हैं:

gsutil versioning set on gs://<your-cloud-storage-bucket>

क्लाउड स्टोरेज हमेशा नवीनतम संस्करण को चुनता है, इसलिए यदि आप किसी वस्तु को पुनर्स्थापित करना चाहते हैं, तो आपको वांछित वस्तु को नवीनतम के रूप में सेट करने के लिए ऊपर दिए गए अन्य एपीआई या उपकरणों में से एक का उपयोग करने की आवश्यकता है।

वस्तु जीवनचक्र प्रबंधन

पुरानी फ़ाइलों को स्वचालित रूप से संग्रहित करने या हटाने की क्षमता होना कई अनुप्रयोगों के लिए एक उपयोगी विशेषता है। सौभाग्य से, Google क्लाउड स्टोरेज वस्तु जीवनचक्र प्रबंधन प्रदान करता है, जो आपको एक निश्चित समय के बाद वस्तुओं को हटाने या संग्रहीत करने की अनुमति देता है।

एक फोटो शेयरिंग एप्लिकेशन पर विचार करें जिसे आप चाहते हैं कि सभी तस्वीरें एक दिन के भीतर हटा दी जाएं। आप एक वस्तु जीवनचक्र नीति को निम्नानुसार स्थापित कर सकते हैं:

// lifecycle.json
{
  "lifecycle": {
    "rule":
    [
      {
        "action": {"type": "Delete"},
        "condition": {"age": 1}
      }
    ]
  }
}

और इसे gsutil lifecycle set कमांड का उपयोग करके परिनियोजित करें:

gsutil lifecycle set lifecycle.json gs://<your-cloud-storage-bucket>

ध्यान दें कि यह बकेट में सभी फाइलों पर लागू होता है, इसलिए यदि आप उन महत्वपूर्ण उपयोगकर्ता बैकअप को स्टोर कर रहे हैं जिन्हें आप लंबे समय तक स्टोर करना चाहते हैं, साथ ही उन तस्वीरों के साथ जिन्हें आप रोजाना हटाना चाहते हैं, तो आप दो अलग-अलग बकेट का उपयोग कर सकते हैं या मैन्युअल रूप से डिलीट कर सकते हैं। gsutil या अपने स्वयं के सर्वर के साथ।

ऐप इंजन

ऐप इंजन एक "एक सेवा के रूप में प्लेटफ़ॉर्म" है जो इसे प्राप्त होने वाले ट्रैफ़िक की मात्रा के जवाब में स्वचालित रूप से बैकएंड लॉजिक को मापता है। बस अपना बैकएंड कोड अपलोड करें और Google आपके ऐप की उपलब्धता का प्रबंधन करेगा; आपके लिए प्रावधान करने या बनाए रखने के लिए कोई सर्वर नहीं है। ऐप इंजन आपके फायरबेस एप्लिकेशन में अतिरिक्त प्रोसेसिंग पावर या विश्वसनीय निष्पादन जोड़ने का एक तेज़ और आसान तरीका है।

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

ऐप इंजन के लिए जावा, पायथन और गो स्टैंडर्ड वातावरण में ऐप इंजन इमेज एपीआई ( जावा , पायथन) शामिल है, जो एक इमेज का आकार बदल सकता है, घुमा सकता है, फ्लिप कर सकता है और क्रॉप कर सकता है, साथ ही एक इमेज सर्विंग यूआरएल देता है जो क्लाइंट साइड ट्रांसफॉर्मेशन की अनुमति देता है। , क्लाउडिनरी और इमगिक्स के समान।

किसी मौजूदा Google क्लाउड प्रोजेक्ट को Firebase में आयात करते समय, यदि आप किसी भी मौजूदा ऐप इंजन ऑब्जेक्ट को Firebase में उपलब्ध कराना चाहते हैं, तो आपको अपने ऑब्जेक्ट पर डिफ़ॉल्ट एक्सेस कंट्रोल सेट करना होगा ताकि Firebase को gsutil का उपयोग करके निम्न आदेश चलाकर उन्हें एक्सेस करने की अनुमति मिल सके :

gsutil -m acl ch -r -u service-<project number;gt@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://<your-cloud-storage-bucket>

ज्ञात पहलु

ऐसे दो ज्ञात मामले हैं जहाँ आप अपने ऐप इंजन ऐप को आयात नहीं कर सकते हैं:

  1. प्रोजेक्ट में एक पूर्व ऐप इंजन डेटास्टोर मास्टर/स्लेव ऐप शामिल है।
  2. प्रोजेक्ट में एक डोमेन प्रीफ़िक्स्ड प्रोजेक्ट आईडी है, उदाहरण के लिए: domain.com:project-1234

इनमें से किसी भी मामले में, प्रोजेक्ट फायरबेस के लिए क्लाउड स्टोरेज का समर्थन नहीं करेगा, और क्लाउड स्टोरेज का उपयोग करने के लिए आपको एक नया फायरबेस प्रोजेक्ट बनाना चाहिए। समर्थन से संपर्क करें ताकि हम आपकी मदद कर सकें।

Google मेघ कार्य (बीटा)

Google क्लाउड फ़ंक्शंस एक हल्का, घटना-आधारित, अतुल्यकालिक कंप्यूट समाधान है जो आपको छोटे, एकल-उद्देश्य वाले फ़ंक्शन बनाने की अनुमति देता है जो किसी सर्वर या रनटाइम वातावरण को प्रबंधित करने की आवश्यकता के बिना घटनाओं का जवाब देते हैं। इन कार्यों का उपयोग वीडियो ट्रांसकोडिंग, मशीन लर्निंग का उपयोग करके छवियों को वर्गीकृत करने, या मेटाडेटा को फायरबेस रीयलटाइम डेटाबेस के साथ समन्वयित करने के लिए किया जा सकता है। ऐप इंजन की तुलना में कम ओवरहेड के साथ, क्लाउड स्टोरेज में परिवर्तनों पर प्रतिक्रिया करने के लिए क्लाउड फ़ंक्शंस सबसे तेज़ तरीका है।

Google क्लाउड विजन एपीआई

Google क्लाउड विजन एपीआई उपयोग में आसान एपीआई में शक्तिशाली मशीन लर्निंग मॉडल को समाहित करके डेवलपर्स को एक छवि की सामग्री को समझने में सक्षम बनाता है। यह जल्दी से छवियों को हजारों श्रेणियों में वर्गीकृत करता है, छवियों के भीतर अलग-अलग वस्तुओं और चेहरों का पता लगाता है, छवियों के भीतर निहित मुद्रित शब्दों को ढूंढता और पढ़ता है, आपत्तिजनक सामग्री की पहचान करता है और यहां तक ​​कि छवि भावना विश्लेषण भी प्रदान करता है।

Google मेघ भाषण एपीआई

विज़न एपीआई के समान, Google क्लाउड स्पीच एपीआई डेवलपर्स को क्लाउड स्टोरेज में संग्रहीत ऑडियो फ़ाइल से टेक्स्ट निकालने में सक्षम बनाता है। एपीआई आपके वैश्विक उपयोगकर्ता आधार का समर्थन करने के लिए 80 से अधिक भाषाओं और प्रकारों को पहचानता है। Google क्लाउड नेचुरल लैंग्वेज एपीआई के साथ संयुक्त होने पर, डेवलपर्स कच्चे पाठ को निकाल सकते हैं और उस पाठ के अर्थ का अनुमान लगा सकते हैं। और यदि वैश्विक दर्शकों की आवश्यकता है, तो पाठ को 90+ भाषाओं में अनुवाद करने के लिए इसे Google Translate API के साथ जोड़ दें।