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

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

Версия: 2.0.2

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

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

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

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

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

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

  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."}

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

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