您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
版本:2.0.2
列出、下载 Cloud Storage 存储分区中的文件,并为这些文件生成签名网址。
此内容提供了有关配置和使用此扩展程序的参考信息。在 API 代理中使用此扩展程序之前,您必须执行以下操作:
将对象上传到您的存储分区。
向代表 Google Cloud Storage 扩展服务的 Google Cloud 服务账号授予访问相应存储分区的权限。如需详细了解要使用的角色,请参阅 Cloud Storage 角色。如需详细了解 Cloud Storage 中的权限,请参阅使用 Identity and Access Management (IAM) 权限。
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>
操作
downloadFile
下载指定的文件。
请求参数
| 参数 | 说明 | 类型 | 默认值 | 必需 |
|---|---|---|---|---|
| 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 存储分区。 | 无。 | 是。 |