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

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

वर्शन: 1.4.1

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"]

नीचे दी गई Assign Message नीति, ऊपर दी गई 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."}

नीचे दी गई Assign Message नीति, एक्सटेंशन से मिली वैल्यू को वापस लाती है और उसे रिस्पॉन्स पेलोड में कॉपी करती है.

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

नीचे दी गई Assign Message नीति, एक्सटेंशन से मिली वैल्यू को वापस लाती है और उसे रिस्पॉन्स बॉडी में कॉपी करती है.

<?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 कंसोल का इस्तेमाल करके एक्सटेंशन को कॉन्फ़िगर करने का तरीका जानने के लिए, एक्सटेंशन जोड़ना और उसे कॉन्फ़िगर करना लेख पढ़ें.

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

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

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

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

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