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