Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

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

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

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

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

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

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

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

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

शहद की मक्खी

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

Google क्लाउड सर्वर SDK

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

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

Google मेघ संग्रहण SDK के लिए उदाहरण उपयोग नीचे दिखाया गया है:

Node.js

    // 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 का उपयोग कर सकते हैं, जिनमें शामिल हैं:

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

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

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

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

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

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

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

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

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

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

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

Google क्लाउड स्पीच API

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