Google Cloud Storage 擴充功能

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

版本:1.4.2

Cloud Storage 值區中的檔案列出、下載及產生已簽署的網址。

這項內容提供設定與使用這項擴充功能的參考資源。如要透過 API Proxy 使用這個擴充功能,您必須:

  1. 建立 Cloud Storage 值區

  2. 將物件上傳至您的值區。

  3. 為代表 Google Cloud Storage 擴充功能的 GCP 服務帳戶授予權限,允許存取值區。如要進一步瞭解使用的角色,請參閱 Cloud Storage 角色一文。如要進一步瞭解 Cloud Storage 中的權限,請參閱使用 Identity and Access Management (IAM) 權限

  4. 使用 GCP 主控台為服務帳戶產生金鑰

  5. 使用設定參考資料新增及設定擴充功能時,請使用產生的金鑰 JSON 檔案內容。

關於 Cloud Storage

Cloud Storage 是安全、耐用且可擴充的檔案儲存空間服務。如果您剛開始使用 Cloud Storage,不妨先參考 Cloud Storage 說明文件中的快速入門導覽課程

範例

以下範例說明如何透過擴充功能摘要政策,設定 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>

下載檔案

以下 Extension callout 政策會使用 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>

產生已簽署的網址

下列 Extension callout 政策會使用這項擴充功能產生網址,以便從 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>

動作

下載檔案

下載指定檔案。

要求參數

參數 說明 類型 預設 必填
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 Proxy 時,請使用下列指令。如需使用 Apigee 控制台設定擴充功能的步驟,請參閱新增及設定擴充功能

常見擴充功能屬性

每個擴充功能都有下列屬性。

屬性 說明 預設 必要
name 您要為這項擴充功能設定的名稱。 相容
packageName Apigee Edge 指定的擴充功能套件名稱。 相容
version 擴充功能的擴充功能套件版本號碼。 相容
configuration 您要新增的擴充功能專屬的設定值。請參閱「這個擴充功能套件的屬性」一文 相容

這個擴充功能套件的屬性

屬性 說明 預設 必填
bucketName 應與這項擴充功能互動的 GCS 值區。 無。 是。