您正在查看 Apigee Edge 文档。
请查看 Apigee X 文档。
版本:1.4.1
为 Cloud Storage 存储分区中的文件列出、下载和生成签名网址。
此内容提供了配置和使用此扩展程序的参考信息。在通过 API 代理使用此扩展程序之前,您必须:
将对象上传到您的存储分区。
将存储分区访问权限授予代表您的 Google Cloud Storage 扩展程序的 GCP 服务帐号。如需详细了解要使用的角色,请参阅 Cloud Storage 角色。如需详细了解 Cloud Storage 中的权限,请参阅使用 Identity and Access Management (IAM) 权限。
关于 Cloud Storage
Cloud Storage 是一项安全、耐用且可伸缩的文件存储服务。如果您是 Cloud Storage 新手,不妨参阅 Cloud Storage 文档中的快速入门,
示例
以下示例说明了如何使用 Extension callout 政策配置对 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"]
下面的“分配消息”政策会从上述 Extension callout 政策中检索响应值,并将其复制到响应载荷中。
<?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>
下载文件
以下 ExtensionIDFA 政策使用 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>
生成签名网址
以下扩展程序调用程序政策使用此扩展程序生成网址,用于从 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>
操作
下载文件
下载指定文件。
请求参数
参数 | 说明 | 类型 | 默认 | 必需 |
---|---|---|---|---|
文件名 | 要下载的文件。 | 字符串 | 无。 | 有。 |
语法
<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"]
generateSigned网址
为存储分区中的指定文件创建签名网址。此网址可用于下载文件。
请求参数
参数 | 说明 | 类型 | 默认 | 必需 |
---|---|---|---|---|
文件名 | 为其生成签名网址的 Cloud Storage 对象的名称。 | 字符串 | 无。 | 有。 |
expirationOn | 签名网址到期的日期。 | 字符串 | 无。 | 没有。 |
语法
<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 |
特定于您要添加的附加信息的配置值。请参阅此扩展程序软件包的属性 | 无 | 是 |
此扩展程序软件包的属性
属性 | 说明 | 默认 | 必需 |
---|---|---|---|
存储分区名称 | 此扩展程序应与之互动的 GCS 存储分区。 | 无。 | 有。 |