إضافة Google Cloud Storage

أنت تطّلع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

الإصدار: 1.4.1

يمكنك إدراج عناوين URL موقَّعة للملفات في حزمة Cloud Storage وتنزيلها وإنشاؤها.

يوفّر هذا المحتوى مرجعًا لضبط هذه الإضافة واستخدامها. قبل استخدام هذه الإضافة من خادم وكيل لواجهة برمجة التطبيقات، عليك إجراء ما يلي:

  1. أنشئ حزمة في Cloud Storage.

  2. حمِّل العناصر إلى حزمة التخزين.

  3. امنح الإذن بالوصول إلى الحزمة لحساب خدمة Google Cloud Platform الذي يمثّل إضافة Google Cloud Storage. لمزيد من المعلومات عن الدور الذي تريد استخدامه، اطّلِع على أدوار Cloud Storage. لمزيد من المعلومات عن الأذونات في Cloud Storage، يُرجى الاطّلاع على مقالة استخدام أذونات "إدارة الهوية وإمكانية الوصول" (IAM).

  4. استخدِم وحدة تحكّم Google Cloud Platform لإنشاء مفتاح لحساب الخدمة.

  5. استخدِم محتوى ملف JSON الناتج عن المفتاح عند إضافة الإضافة وضبطها باستخدام مرجع الإعدادات.

لمحة عن Cloud Storage

Cloud Storage هي خدمة لتخزين الملفات بأمان وبشكل دائم وقابل للتوسّع. إذا كنت قد بدأت للتو استخدام Cloud Storage، يمكنك البدء من خلال الدليل السريع في مستندات Cloud Storage.

نماذج

توضّح الأمثلة التالية كيفية ضبط التوافق مع إجراءات إضافة Cloud Storage باستخدام سياسة ExtensionCallout.

عرض قائمة الملفات

في المثال التالي، يسترجع الإجراء 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>

إنشاء عنوان URL موقَّع

تستخدِم سياسة ExtensionCallout التالية هذه الإضافة لإنشاء عنوان URL لتنزيل الملف المحدّد من حزمة Cloud Storage. ويتمّ ضبط اسم الملف، بالإضافة إلى التاريخ الذي ستنتهي صلاحية عنوان URL بعده ولن يعود صالحًا.

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

لإنشاء عنوان URL موقَّع لملف محدّد في الحزمة يمكن استخدام عنوان URL هذا لتنزيل الملف.

مَعلمات الطلب

المَعلمة الوصف النوع تلقائي مطلوب
fileName اسم عنصر Cloud Storage الذي تريد إنشاء عنوان URL موقّع له. سلسلة بلا عُري نعم.
expiresOn تاريخ انتهاء صلاحية عنوان URL الموقَّع سلسلة بلا عُري لا.

البنية

<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 موقَّعًا على سبيل المثال:

{"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، اطّلِع على إضافة إضافة وضبطها.

سمات الإضافات الشائعة

The following properties are present for every extension.

Property Description Default Required
name Name you're giving this configuration of the extension. None Yes
packageName Name of the extension package as given by Apigee Edge. None Yes
version Version number for the extension package from which you're configuring an extension. None Yes
configuration Configuration value specific to the extension you're adding. See Properties for this extension package None Yes

سمات حزمة الإضافة هذه

الموقع الوصف تلقائي مطلوب
bucketName حزمة GCS التي يجب أن تتفاعل معها هذه الإضافة. بلا عُري نعم.