إضافة Google Cloud Storage

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

الإصدار: 2.0.0

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

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

  1. إنشاء حزمة في Google Cloud Storage.

  2. تحميل العناصر إلى حزمتك.

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

  4. استخدام Google Cloud Console لإنشاء مفتاح لحساب الخدمة.

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

تستردّ سياسة 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>

إنشاء عنوان 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"}

تستردّ سياسة 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

يتم إنشاء عنوان 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، يُرجى الاطّلاع على إضافة إضافة وضبطها.

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

السمات التالية متاحة لكل إضافة.

الموقع الوصف تلقائي عنصر مطلوب
name الاسم الذي تُعطِه هذه الإضافة من الإضافات. لا ينطبق متوافق
packageName اسم حزمة الإضافة كما هو مُوضَّح من Apigee Edge. لا ينطبق متوافق
version رقم إصدار حزمة الإضافة التي تجري عملية إعداد الإضافة منها. لا ينطبق متوافق
configuration قيمة الإعداد المتعلقة بالإضافة التي تدرجها الاطّلاع على خصائص حزمة الإضافات هذه لا ينطبق متوافق

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

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