Расширение облачного хранилища 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 см. в разделе Добавление и настройка расширения .

Общие свойства расширения

The following properties are present for every extension.

Property Description Default Required
name Name you're giving this configuration of the extension. None Yes
packageName Name of the extension package as given by Apigee Edge. None Yes
version Version number for the extension package from which you're configuring an extension. None Yes
configuration Configuration value specific to the extension you're adding. See Properties for this extension package None Yes

Свойства этого пакета расширений

Свойство Описание По умолчанию Необходимый
имя_ведра Сегмент GCS, с которым должно взаимодействовать это расширение. Никто. Да.