Расширение облачного хранилища Google

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

Версия: 1.4.1

Просматривайте, загружайте и создавайте подписанные URL-адреса для файлов в сегменте Cloud Storage .

Этот контент содержит информацию по настройке и использованию этого расширения. Прежде чем использовать это расширение через прокси-сервер API, необходимо:

  1. Создайте сегмент облачного хранилища .

  2. Загрузите объекты в свою корзину.

  3. Предоставьте разрешение на доступ к сегменту сервисному аккаунту GCP, который представляет ваше расширение Google Cloud Storage. Дополнительные сведения об использовании роли см. в разделе Роли Cloud Storage . Дополнительные сведения о разрешениях в облачном хранилище см. в разделе Использование разрешений управления идентификацией и доступом (IAM) .

  4. Используйте консоль GCP для создания ключа для учетной записи службы .

  5. Используйте содержимое полученного ключевого файла 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, с которым должно взаимодействовать это расширение. Никто. Да.