您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
版本:2.0.0
列出、下载和为 Cloud Storage 存储分区中的文件生成签名网址。
本文档提供了有关配置和使用此扩展程序的参考信息。在通过 API 代理使用此扩展程序之前,您必须满足以下条件:
将对象上传到存储分区。
向代表您的 Google Cloud Storage 扩展程序的 GCP 服务账号授予访问该存储分区的权限。如需详细了解要使用的角色,请参阅 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"]
以下 AssignMessage 政策会从上述 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."}
以下 AssignMessage 政策会检索扩展程序返回的值,并将其复制到响应载荷中。
<?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"}
以下 AssignMessage 政策会检索扩展程序返回的值,并将其复制到响应正文中。
<?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 存储分区。 | 无。 | 是。 |