Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Версия: 1.4.1
Просматривайте, загружайте и создавайте подписанные URL-адреса для файлов в сегменте Cloud Storage .
Этот контент содержит информацию по настройке и использованию этого расширения. Прежде чем использовать это расширение через прокси-сервер API, необходимо:
Загрузите объекты в свою корзину.
Предоставьте разрешение на доступ к сегменту сервисному аккаунту GCP, который представляет ваше расширение Google Cloud Storage. Дополнительные сведения об использовании роли см. в разделе Роли Cloud Storage . Дополнительные сведения о разрешениях в облачном хранилище см. в разделе Использование разрешений управления идентификацией и доступом (IAM) .
Используйте консоль GCP для создания ключа для учетной записи службы .
Используйте содержимое полученного ключевого файла JSON при добавлении и настройке расширения с помощью справочника по конфигурации .
Об облачном хранилище
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."}
Следующая политика назначения сообщения извлекает значение, возвращаемое расширением, и копирует его в полезные данные ответа.
<?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"]
генерироватьподписанныйURL
Создает подписанный URL-адрес для указанного файла в корзине. Этот URL-адрес можно использовать для загрузки файла.
Параметры запроса
Параметр | Описание | Тип | По умолчанию | Необходимый |
---|---|---|---|---|
имя файла | Имя объекта Cloud Storage, для которого создается подписанный 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 | Значение конфигурации, относящееся к добавляемому расширению. См. Свойства этого пакета расширения. | Никто | Да |
Свойства этого пакета расширений
Свойство | Описание | По умолчанию | Необходимый |
---|---|---|---|
имя_ведра | Сегмент GCS, с которым должно взаимодействовать это расширение. | Никто. | Да. |