إضافة Google Cloud Storage

أنت تعرض مستندات Apigee Edge.
انتقل إلى مستندات Apigee X.
معلومات

الإصدار: 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>

المهام

تنزيل الملف

يتم تنزيل الملف المحدّد.

معلمات الطلب

المعلمة الوصف النوع تلقائي مطلوب
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 التي يجب أن تتفاعل معها هذه الإضافة. بلا عُري نعم.