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

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

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

हुड के तहत, क्लाउड स्टोरेज के लिए फायरबेस एसडीके ऐप इंजन नो-कॉस्ट टियर में डिफ़ॉल्ट बकेट का उपयोग करते हैं। यह आपको क्रेडिट कार्ड लगाए बिना या क्लाउड बिलिंग खाता सक्षम किए बिना, क्लाउड स्टोरेज के साथ जल्दी से जुड़ने और चलाने की अनुमति देता है। यह आपको फायरबेस और 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 दोनों के लिए एपीआई प्रदान करता है .

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

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