Apigee Edge のドキュメントが表示されています。
Apigee X のドキュメントに移動します。 情報
バージョン: 2.0.2
Cloud Storage バケット内のファイルのリスト表示、ダウンロード、署名付き URL の生成。
このコンテンツでは、この拡張機能を構成して使用するためのリファレンスを提供します。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"]
次の Assign Message ポリシーは、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."}
次の Assign Message ポリシーは、拡張機能から返された値を取得して、レスポンス ペイロードにコピーします。
<?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>
署名付き URL を生成する
次の ExtensionCallout ポリシーは、この拡張機能を使用して、Cloud Storage バケットから指定されたファイルをダウンロードするための URL を生成します。ファイルの名前と、URL の有効期限が切れて機能しなくなる日付を渡します。
<?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"}
次の Assign Message ポリシーは、拡張機能から返された値を取得して、レスポンス本文にコピーします。
<?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
バケット内の指定されたファイルの署名付き URL を作成します。この URL を使用してファイルをダウンロードできます。
リクエスト パラメータ
| パラメータ | 説明 | 型 | デフォルト | 必須 |
|---|---|---|---|---|
| fileName | 署名付き URL を生成する Cloud Storage オブジェクトの名前。 | 文字列 | なし。 | はい。 |
| expiresOn | 署名付き URL の有効期限。 | 文字列 | なし。 | いいえ。 |
構文
<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>
レスポンス
署名付き URL を含むオブジェクトを表す 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 バケット。 | なし。 | はい。 |