إضافة Google Cloud Storage

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

الإصدار: 2.0.2

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

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

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

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

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

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

تستردّ سياسة "تحديد الرسالة" التالية قيمة الاستجابة من سياسة 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"}

مرجع الإعدادات

استخدِم ما يلي عند ضبط هذه الإضافة ونشرها لاستخدامها في خوادم API الوكيلة. للاطّلاع على خطوات إعداد إضافة باستخدام وحدة تحكّم Apigee، يُرجى الرجوع إلى إضافة إضافة وإعدادها.

خصائص الإضافة الشائعة

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

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

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

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