Вы просматриваете документацию Apigee Edge .
Перейти к документации Apigee X. info
Версия: 2.0.1
Составляйте список, загружайте и генерируйте подписанные URL-адреса для файлов в облачном хранилище .
Этот контент предоставляет справочную информацию по настройке и использованию этого расширения. Перед использованием этого расширения из API-прокси необходимо:
Загрузите объекты в свою корзину.
Предоставьте разрешение на доступ к контейнеру учетной записи службы GCP, которая представляет ваше расширение Google Cloud Storage. Подробнее о роли для использования см. в разделе Роли Cloud Storage . Подробнее о разрешениях в Cloud Storage см. в разделе Использование разрешений Identity and Access Management (IAM) .
Используйте консоль GCP для генерации ключа для учетной записи службы .
Используйте содержимое полученного файла JSON-ключа при добавлении и настройке расширения с помощью справочника по конфигурации .
Об облачном хранилище
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>
Действия
скачатьФайл
Загружает указанный файл.
Параметры запроса
Параметр | Описание | Тип | По умолчанию | Необходимый |
---|---|---|---|---|
имя файла | Файл для скачивания. | Нить | Никто. | Да. |
Синтаксис
<Input><![CDATA[{"fileName" : "the-file-to-download"}]]></Input>
Пример
<Input><![CDATA[{"fileName" : "example-text.txt"}]]></Input>
Ответ
JSON, представляющий объект с содержимым загруженного файла. Например:
{"content":"Some example text."}
списокФайлы
Список файлов, доступных для загрузки.
Параметры запроса
Никто.
Ответ
Массив имен файлов. Например:
["example-text.txt","example-image.png"]
сгенерироватьSignedURL
Создает подписанный URL для указанного файла в контейнере. Этот URL может быть использован для загрузки файла.
Параметры запроса
Параметр | Описание | Тип | По умолчанию | Необходимый |
---|---|---|---|---|
имя файла | Имя объекта облачного хранилища, для которого необходимо сгенерировать подписанный URL. | Нить | Никто. | Да. |
истекаетВкл. | Дата истечения срока действия подписанного 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, с которым должно взаимодействовать это расширение. | Никто. | Да. |