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