Google Cloud के साथ इंटिग्रेट करना

Cloud Storage for Firebase, Google के साथ पूरी तरह से इंटिग्रेट किया गया है Google Cloud. Cloud Storage के लिए Firebase SDK टूल फ़ाइलों को सीधे इसमें सेव करें Google Cloud Storage बकेट, जैसे-जैसे आपका ऐप्लिकेशन बढ़ता जाएगा, आपको अन्य Google Cloud सेवाओं को आसानी से इंटिग्रेट करने में मदद मिलेगी, मैनेज की जा रही कंप्यूटिंग, जैसे कि App Engine या Cloud Functions या मशीन Cloud Vision या Google Translate जैसे लर्निंग एपीआई.

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

हुड के तहत, Cloud Storage के लिए Firebase SDK टूल, App Engine नो-कॉस्ट टियर. यह आपको बिना तेज़ी से Cloud Storage के साथ काम करने की सुविधा देता है क्रेडिट कार्ड डालना या Cloud Billing खाता चालू करना ज़रूरी है. यह भी की मदद से Firebase और Google Cloud प्रोजेक्ट के बीच आसानी से डेटा शेयर किया जा सकता है.

Google Cloud के साथ इंटिग्रेट करना. इसमें मौजूदा Cloud Storage को इंपोर्ट करना भी शामिल है बकेट के लिए, ब्लेज़ प्लान पर Firebase प्रोजेक्ट होना ज़रूरी है. ज़्यादा जानने के लिए, हमारे कीमत तय करने की जानकारी देने वाले पेज पर मौजूद प्लान देखें.

Google Cloud Storage

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

यह ध्यान रखना ज़रूरी है कि ये अनुरोध Google Cloud Storage का इस्तेमाल करते हैं ऐक्सेस कंट्रोल के विकल्प, Firebase Authentication और Cloud Storage Security Rules के बजाय इस्तेमाल करें.

API

Cloud Storage के लिए Firebase SDK टूल के अलावा, ऐसे कई अन्य तरीके हैं आपकी निजी जानकारी के आधार पर, आपकी Cloud Storage बकेट में सेव किए गए डेटा को ऐक्सेस करने के लिए करना चाहते हैं. अगर सर्वर पर डेटा ऐक्सेस किया जाता है, तो हम आपको सर्वर साइड की सुविधा देते हैं साथ ही, JSON और S3 के साथ काम करने वाला XML RESTful API होगा. इसके अलावा, अगर बदलाव स्क्रिप्ट करने या अन्य प्रशासनिक काम करने की ज़रूरत होती है, तो हमें कमांड-लाइन टूल इस्तेमाल करें.

Google Cloud सर्वर SDK

Google Cloud कई साइटों के लिए अच्छी क्वालिटी वाले सर्वर SDK टूल उपलब्ध कराता है क्लाउड प्रॉडक्ट, जिनमें Cloud Storage भी शामिल हैं. ये लाइब्रेरी यहां उपलब्ध हैं Node.js Java, जाएं, Python, फ़िलिपीन पेसो, और रूबी.

ज़्यादा जानकारी के लिए, जैसे कि इंस्टॉल करने के निर्देश, पुष्टि करना, और के लिए, ऊपर दिए गए प्लैटफ़ॉर्म से जुड़े दस्तावेज़ पढ़ें.

Google Cloud Storage 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) {});
    

Java

    // 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)
    }
    

Python

    # 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()
    

PHP

    // 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');
    

Ruby

    # 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}"
    

REST API

अगर बिना क्लाइंट लाइब्रेरी वाली भाषा का इस्तेमाल किया जा रहा है, तो आपको कुछ ऐसा करना चाहिए क्लाइंट लाइब्रेरी में कुछ नहीं किया जाता या फिर आपके पास एक पसंदीदा HTTP क्लाइंट होता है, जो इस्तेमाल करना पसंद करते हैं, तो Google Cloud Storage दोनों के लिए एपीआई ऑफ़र करता है JSON और एक्सएमएल.

Cloud Storage बकेट मैनेज करने के लिए, स्टोरेज डेटा को ऐक्सेस करने वाले इन एपीआई के अलावा Firebase प्रोजेक्ट में इस्तेमाल करने के लिए, Cloud Storage for Firebase API का इस्तेमाल किया जा सकता है.

gsutil

gsutil एक निर्देश है इससे आपको Cloud Storage का सीधा ऐक्सेस मिलता है. 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 Cloud Storage, बड़े पैमाने पर दी जाने वाली ऐसी सेवा है जो अपने-आप स्केलिंग की सुविधा का इस्तेमाल करती है बहुत ज़्यादा अनुरोध दर पाने के लिए टेक्नोलॉजी का इस्तेमाल किया जा सकता है.

Google Cloud Storage एक मल्टी-टेनेंट सेवा है, जिसका मतलब है कि उपयोगकर्ता पहले से मौजूद संसाधनों का एक ही सेट मौजूद है. बेहतर तरीके से काम करने के लिए, शेयर किए गए संसाधनों, बकेट की शुरुआती IO क्षमता होती है.

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

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

क्या आपने कभी गलती से कुछ मिटा दिया है और उसका बैकअप नहीं लिया है? Google Cloud Storage समर्थन करता है ऑब्जेक्ट का वर्शन, इससे आपके डेटा का बैक अप अपने-आप लिया जा सकता है और उसे वापस पाया जा सकता है बैकअप. gsutil versioning set का इस्तेमाल करके, ऑब्जेक्ट वर्शनिंग की सुविधा चालू की जा सकती है आदेश:

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

Cloud Storage हमेशा सबसे नए वर्शन को चुनता है, इसलिए अगर आपको किसी ऑब्जेक्ट को वापस लाएं, तो सेट करने के लिए आपको ऊपर दिए गए किसी अन्य एपीआई या टूल का इस्तेमाल करना होगा सबसे नया के रूप में अभी वाला ऑब्जेक्ट.

ऑब्जेक्ट लाइफसाइकल मैनेजमेंट

पुरानी फ़ाइलों को अपने-आप संग्रहित करने या मिटाने की सुविधा होना फ़ायदेमंद है सुविधा का इस्तेमाल करती हैं. अच्छी बात यह है कि Google Cloud Storage आपको ऑब्जेक्ट लाइफ़साइकल मैनेजमेंट, इसकी मदद से, एक तय समय के बाद ऑब्जेक्ट को मिटाया या संग्रहित किया जा सकता है.

फ़ोटो शेयर करने के लिए ऐसा ऐप्लिकेशन इस्तेमाल करें जिसमें आपकी सभी फ़ोटो मिटा दी जाएं एक दिन में बदल सकता है. ऑब्जेक्ट लाइफ़साइकल की नीति को इस तरह सेट अप किया जा सकता है:

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

इसके बाद, gsutil lifecycle set कमांड का इस्तेमाल करके इसे डिप्लॉय करें:

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

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

App Engine

App Engine एक "सेवा के तौर पर प्लैटफ़ॉर्म" है जो बैकएंड को अपने-आप स्केल करता है इसे मिलने वाले ट्रैफ़िक के जवाब में लॉजिक. बस अपना बैकएंड अपलोड करें कोड और Google आपके ऐप्लिकेशन की उपलब्धता को मैनेज करेगा; यहां के लिए कोई सर्वर नहीं है आपको प्रावधान करना होगा या बनाए रखना होगा. App Engine जोड़ने का एक तेज़ और आसान तरीका है अतिरिक्त प्रोसेसिंग पावर या आपके Firebase ऐप्लिकेशन को भरोसेमंद तरीके से एक्ज़ीक्यूट करने की सुविधा.

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

Java, Python, और go स्टैंडर्ड एनवायरमेंट App Engine के लिए App Engine इमेज एपीआई शामिल करें (Java, Python, जो इमेज का साइज़ बदलना, उसे घुमाना, फ़्लिप करना, और काटना. साथ ही, इमेज दिखाने वाला यूआरएल दिखाना इससे क्लाइंट साइड ट्रांसफ़ॉर्मेशन की सुविधा मिलती है. यह Cloudinary और Imgix की तरह ही है.

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

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

ज्ञात समस्याएं

दो स्थितियों में, App Engine ऐप्लिकेशन को इंपोर्ट नहीं किया जा सकता:

  1. इस प्रोजेक्ट में पुराना App Engine Datastore मास्टर/स्लेव मौजूद है है.
  2. प्रोजेक्ट में डोमेन से जुड़ा प्रोजेक्ट आईडी पहले से मौजूद है. उदाहरण के लिए: domain.com:project-1234.

इनमें से किसी भी मामले में, यह प्रोजेक्ट Cloud Storage for Firebase के साथ काम नहीं करता, साथ ही, Google Analytics का इस्तेमाल करने के लिए Cloud Storage. सहायता टीम से संपर्क करें ताकि हम आपकी मदद कर सकें.

Google Cloud Functions (बीटा)

Google Cloud Functions लाइटवेट, इवेंट-आधारित, एसिंक्रोनस कंप्यूट समाधान की मदद से ऐसे छोटे और एक ही काम के लिए बनाए गए फ़ंक्शन बना सकते हैं जो बिना किसी ज़रूरत के, इवेंट में शामिल होते हैं का इस्तेमाल किसी सर्वर या रनटाइम एनवायरमेंट को मैनेज करने के लिए किया जाता है. इन फ़ंक्शन का इस्तेमाल इन चीज़ों के लिए किया जा सकता है वीडियो को ट्रांसकोड करना, मशीन लर्निंग या सिंक करने की सुविधा का इस्तेमाल करके इमेज की कैटगरी तय करना Firebase Realtime Database की जानकारी वाला मेटाडेटा. इससे भी कम ओवरहेड के साथ App Engine, Cloud Functions, ऐप्लिकेशन में होने वाले बदलावों पर तेज़ी से प्रतिक्रिया देने का तरीका है Cloud Storage.

Google Cloud Vision API

Google Cloud Vision API, जानकारी इकट्ठा करके, किसी इमेज के कॉन्टेंट को समझने के लिए, मशीन लर्निंग मॉडल पर काम करता है. यह इमेज को तेज़ी से यह सुविधा, इमेज में मौजूद अलग-अलग ऑब्जेक्ट और चेहरों का पता लगाती है. इमेज में मौजूद प्रिंट किए गए शब्दों को ढूंढता और पढ़ता है, आपत्तिजनक का पता लगाता है साथ ही, इमेज के बारे में भावनाओं का विश्लेषण भी किया जा सकता है.

Google Cloud Speech API

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