Google Cloud Storage 扩展程序

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

<ph type="x-smartling-placeholder">

版本:1.4.1

列出、下载和生成 Cloud Storage 存储分区中的文件的签名网址。

本文提供了配置和使用此扩展程序的参考信息。通过 API 代理使用此扩展程序之前,您必须:

  1. 创建 Cloud Storage 存储桶

  2. 将对象上传到您的存储分区。

  3. 向代表您的 Google Cloud Storage 扩展程序的 GCP 服务账号授予访问存储分区的权限。如需详细了解要使用的角色,请参阅 Cloud Storage 角色。如需详细了解 Cloud Storage 中的权限,请参阅使用 Identity and Access Management (IAM) 权限

  4. 使用 GCP Console 为服务账号生成密钥

  5. 在通过配置参考添加和配置扩展程序时,使用所生成的密钥 JSON 文件的内容。

Cloud Storage 简介

Cloud Storage 是一项安全、耐用且可伸缩的文件存储服务。如果您刚开始使用 Cloud Storage,建议您先参阅 Cloud Storage 文档中的快速入门

示例

以下示例说明了如何使用 ExtensionCallout 政策配置对 Cloud Storage 扩展程序操作的支持。

列出文件

在以下示例中,扩展程序的 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"]

以下“分配消息”政策会从上述 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>

生成签名网址

以下 ExtensionCallout 政策使用此扩展程序生成网址,用于从 Cloud Storage 存储分区下载指定文件。它会传递文件的名称以及网址过期和失效日期。

<?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>

操作

<ph type="x-smartling-placeholder">

下载

下载指定的文件。

请求参数

参数 说明 类型 默认 必填
fileName 要下载的文件。 字符串 无。 是。

语法

<Input><![CDATA[{"fileName" : "the-file-to-download"}]]></Input>

示例

<Input><![CDATA[{"fileName" : "example-text.txt"}]]></Input>

响应

JSON,表示包含已下载文件内容的对象。例如:

{"content":"Some example text."}

listFiles

列出可供下载的文件。

请求参数

无。

响应

文件名数组。例如:

["example-text.txt","example-image.png"]

generateSignedURL

为存储分区中的指定文件创建签名网址。可以使用此网址下载文件。

请求参数

参数 说明 类型 默认 必填
fileName 要为其生成签名网址的 Cloud Storage 对象的名称。 字符串 无。 是。
expiresOn 签名网址的过期日期。 字符串 无。 数量

语法

<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":"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 存储分区。 无。 是。