Расширение облачного хранилища 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 с помощью политики 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"}

Следующая политика Assign Message извлекает значение, возвращаемое расширением, и копирует его в текст ответа.

<?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, с которым должно взаимодействовать это расширение. Никто. Да.