Google Cloud Storage एक्सटेंशन

Apigee Edge का दस्तावेज़ देखा जा रहा है.
Apigee X के दस्तावेज़ पर जाएं.
जानकारी

वर्शन: 2.0.0

Cloud Storage की बकेट में मौजूद फ़ाइलों के लिए, हस्ताक्षर किए गए यूआरएल की सूची बनाएं, उन्हें डाउनलोड करें, और जनरेट करें.

इस कॉन्टेंट में, इस एक्सटेंशन को कॉन्फ़िगर करने और इस्तेमाल करने के बारे में जानकारी दी गई है. एपीआई प्रॉक्सी से इस एक्सटेंशन का इस्तेमाल करने से पहले, आपको ये काम करने होंगे:

  1. Cloud Storage बकेट बनाएं.

  2. अपनी बकेट में ऑब्जेक्ट अपलोड करें.

  3. अपने Google Cloud Storage एक्सटेंशन को दिखाने वाले GCP सेवा खाते को बकेट को ऐक्सेस करने की अनुमति दें. इस्तेमाल की जाने वाली भूमिका के बारे में ज़्यादा जानने के लिए, Cloud Storage की भूमिकाएं लेख पढ़ें. Cloud Storage में अनुमतियों के बारे में ज़्यादा जानने के लिए, Identity and Access Management (IAM) की अनुमतियों का इस्तेमाल करना लेख पढ़ें.

  4. सेवा खाते के लिए कुंजी जनरेट करने के लिए, GCP Console का इस्तेमाल करें.

  5. कॉन्फ़िगरेशन रेफ़रंस का इस्तेमाल करके एक्सटेंशन को जोड़ने और कॉन्फ़िगर करने के दौरान, जनरेट हुई कुंजी वाली JSON फ़ाइल के कॉन्टेंट का इस्तेमाल करें.

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

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

सैंपल

यहां दिए गए उदाहरणों में, ExtensionCallout नीति का इस्तेमाल करके, Cloud Storage एक्सटेंशन ऐक्शन के लिए सहायता कॉन्फ़िगर करने का तरीका बताया गया है.

फ़ाइलों की सूची

यहां दिए गए उदाहरण में, एक्सटेंशन की listFiles कार्रवाई, फ़ाइलों की सूची को इकट्ठा करके, उन्हें कलेक्शन में दिखाती है. listFiles कार्रवाई में कोई इनपुट पैरामीटर नहीं होता.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="false" enabled="true" name="Get-Storage-File-List">
    <DisplayName>Get Storage File List</DisplayName>
    <Connector>cloud-storage-extension-example</Connector>
    <Action>listFiles</Action>
    <Input><![CDATA[{}]]></Input>
    <Output parsed="false">storage.filelist.retrieved</Output>
</ConnectorCallout>

रिस्पॉन्स वैल्यू कुछ इस तरह दिखती है:

["example-text.txt","example-image.png"]

मैसेज असाइन करने की यह नीति, ऊपर दी गई ExtensionCallout नीति से रिस्पॉन्स वैल्यू को वापस लाती है और उसे रिस्पॉन्स पेलोड में कॉपी करती है.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Storage-File-List">
    <DisplayName>Assign Storage File List</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{storage.filelist.retrieved}</Payload>
    </Set>
</AssignMessage>

फ़ाइल डाउनलोड करना

ExtensionCallout की यह नीति, Google Cloud Storage एक्सटेंशन का इस्तेमाल करके एक साधारण टेक्स्ट फ़ाइल डाउनलोड करती है. इस फ़ाइल में सिर्फ़ Some example text.,

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="false" enabled="true" name="Download-File">
    <DisplayName>Download File</DisplayName>
    <Connector>cloud-storage-extension-example</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[{"fileName": "example-text.txt"}]]></Input>
    <Output>storage.file.retrieved</Output>
</ConnectorCallout>

जवाब की वैल्यू इस तरह दिखती है:

{"content":"Some example text."}

मैसेज असाइन करने की यह नीति, एक्सटेंशन से मिली वैल्यू को वापस लाती है और उसे रिस्पॉन्स पेलोड में कॉपी करती है.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Storage-File-List">
    <DisplayName>Assign Storage File List</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{storage.file.retrieved}</Payload>
    </Set>
</AssignMessage>

हस्ताक्षर वाला यूआरएल जनरेट करना

नीचे दी गई ExtensionCallout नीति, इस एक्सटेंशन का इस्तेमाल करके Cloud Storage की बकेट से किसी फ़ाइल को डाउनलोड करने के लिए यूआरएल जनरेट करती है. यह फ़ाइल का नाम और उस तारीख की जानकारी देता है जिसके बाद यूआरएल की समयसीमा खत्म हो जाएगी और वह काम नहीं करेगा.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="false" enabled="true" name="Get-Signed-URL">
    <DisplayName>Get Signed URL</DisplayName>
    <Connector>cloud-storage-extension-example</Connector>
    <Action>generateSignedURL</Action>
    <Input><![CDATA[{
        "fileName" : "example-text.txt",
        "expiresOn" : "2018-08-05"
    }]]></Input>
    <Output>storage.url.retrieved</Output>
</ConnectorCallout>

एक्सटेंशन की रिटर्न वैल्यू कुछ इस तरह दिखती है.

{"url":"https://storage.googleapis.com/storage-extension-example/example-text.txt?GoogleAccessId=extension-test%40my-test-33333.iam.gserviceaccount.com&Expires=1533427200&Signature=Y1cE1DCHesWeIZILRhdIuDR%2FhzZXZ%2BPeY3J1PUkRiosFYj41itHBWh2%2BTQgH9kI6E8s2mWrVDFU43YR7s8Tm9W5VgWRwh0nXSactQ0xKbkKbGZmCcWxgIscOezc1zc%2Bp7lnXSx1qd4wIlIKVH4KCd9WLx4qB1dLxGNxMKB32tA3dio5IiMXaHEA%2FR2fYc0Pjh45t8L5rilk5pekv7jfd3sfsgdfgfdglkj%2F7E%2FlJ%2B60RnetqV2IDqrc0sVEgSLTpgTbDGU%2Ft3EcitRUFOSdOb5czt7CiIwKAYSmDEFMSNHHiNTWjvLzq4IU%2BCa4Z5aKyvww%3D%3D"}

मैसेज असाइन करने की यह नीति, एक्सटेंशन से मिली वैल्यू को वापस लाती है और उसे रिस्पॉन्स बॉडी में कॉपी करती है.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Storage-File-URL">
    <DisplayName>Assign Storage File URL</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{storage.url.retrieved}</Payload>
    </Set>
</AssignMessage>

कार्रवाइयां

downloadFile

यह सुविधा, बताई गई फ़ाइल को डाउनलोड करती है.

अनुरोध पैरामीटर

पैरामीटर ब्यौरा टाइप डिफ़ॉल्ट ज़रूरी है
fileName डाउनलोड की जाने वाली फ़ाइल. स्ट्रिंग कोई नहीं. हां.

सिंटैक्स

<Input><![CDATA[{"fileName" : "the-file-to-download"}]]></Input>

उदाहरण

<Input><![CDATA[{"fileName" : "example-text.txt"}]]></Input>

जवाब

डाउनलोड की गई फ़ाइल के कॉन्टेंट के साथ ऑब्जेक्ट को दिखाने वाला JSON. उदाहरण के लिए:

{"content":"Some example text."}

listFiles

डाउनलोड के लिए उपलब्ध फ़ाइलों की सूची दिखाता है.

अनुरोध पैरामीटर

कोई नहीं.

जवाब

फ़ाइल के नामों का कलेक्शन. उदाहरण के लिए:

["example-text.txt","example-image.png"]

generateSignedURL

बकेट में मौजूद किसी फ़ाइल के लिए, हस्ताक्षर वाला यूआरएल बनाता है. इस यूआरएल का इस्तेमाल, फ़ाइल डाउनलोड करने के लिए किया जा सकता है.

अनुरोध पैरामीटर

पैरामीटर ब्यौरा टाइप डिफ़ॉल्ट ज़रूरी है
fileName उस Cloud Storage ऑब्जेक्ट का नाम जिसके लिए साइन किया गया यूआरएल जनरेट करना है. स्ट्रिंग कोई नहीं. हां.
expiresOn हस्ताक्षर किए गए यूआरएल की समयसीमा खत्म होने की तारीख. स्ट्रिंग कोई नहीं. नहीं.

सिंटैक्स

<Input><![CDATA[{
  "fileName" : "file-for-which-to-generate-url",
  "expiresOn" : "date-to-expire-url"
}]]></Input>

उदाहरण

<Input><![CDATA[{
  "fileName" : "example-text.txt",
  "expiresOn" : "2018-08-05"
}]]></Input>

जवाब

हस्ताक्षर किए गए यूआरएल के साथ ऑब्जेक्ट को दिखाने वाला JSON. उदाहरण के लिए:

{"url":"https://storage.googleapis.com/storage-extension-example/example-text.txt?GoogleAccessId=extension-test%40my-test-33333.iam.gserviceaccount.com&Expires=1533427200&Signature=Y1cE1DCHesWeIZILRhdIuDR%2FhzZXZ%2BPeY3J1PUkRiosFYj41itHBWh2%2BTQgH9kI6E8s2mWrVDFU43YR7s8Tm9W5VgWRwh0nXSactQ0xKbkKbGZmCcWxgIscOezc1zc%2Bp7lnXSx1qd4wIlIKVH4KCd9WLx4qB1dLxGNxMKB32tA3dio5IiMXaHEA%2FR2fYc0Pjh45t8L5rilk5pekv7jfd3sfsgdfgfdglkj%2F7E%2FlJ%2B60RnetqV2IDqrc0sVEgSLTpgTbDGU%2Ft3EcitRUFOSdOb5czt7CiIwKAYSmDEFMSNHHiNTWjvLzq4IU%2BCa4Z5aKyvww%3D%3D"}

कॉन्फ़िगरेशन का रेफ़रंस

एपीआई प्रॉक्सी में इस्तेमाल करने के लिए, इस एक्सटेंशन को कॉन्फ़िगर और डिप्लॉय करते समय इनका इस्तेमाल करें. Apigee console का इस्तेमाल करके एक्सटेंशन को कॉन्फ़िगर करने का तरीका जानने के लिए, एक्सटेंशन जोड़ना और कॉन्फ़िगर करना लेख पढ़ें.

सामान्य एक्सटेंशन प्रॉपर्टी

हर प्रॉपर्टी के लिए नीचे दी गई प्रॉपर्टी मौजूद हैं.

प्रॉपर्टी जानकारी डिफ़ॉल्ट ज़रूरी है
name वह नाम, जिसे आप एक्सटेंशन का यह कॉन्फ़िगरेशन दे रहे हैं. कभी नहीं हां
packageName एक्सटेंशन पैकेज का नाम, जो Apigee Edge से दिया गया है. कभी नहीं हां
version उस एक्सटेंशन पैकेज का वर्शन नंबर जिससे आपको एक्सटेंशन कॉन्फ़िगर करना है. कभी नहीं हां
configuration आप जिस एक्सटेंशन को जोड़ रहे हैं उसके लिए खास तौर पर कॉन्फ़िगरेशन वैल्यू. इस एक्सटेंशन पैकेज के लिए प्रॉपर्टी देखें कभी नहीं हां

इस एक्सटेंशन पैकेज के लिए प्रॉपर्टी

प्रॉपर्टी ब्यौरा डिफ़ॉल्ट ज़रूरी है
bucketName वह GCS बकेट जिससे इस एक्सटेंशन को इंटरैक्ट करना चाहिए. कोई नहीं. हां.