Amazon S3 拡張機能

バージョン: 1.0.0

Amazon S3 バケットのファイルを管理します。この拡張機能を使用すると、ファイルのリスト、ダウンロード、削除ができます。ファイルのダウンロード用に署名付き URL を生成することもできます。

この拡張機能の構成済みの各インスタンスが特定のバケットで動作します。バケットが複数の場合、バケットごとにこの拡張機能の構成済みインスタンスを使用します。

前提条件

ExtensionCallout ポリシーで API プロキシ経由で拡張機能を使用する前に、次のことを行う必要があります。

Amazon S3 について

Amazon Simple Storage Service(Amazon S3)はオブジェクト ストレージ サービスです。

アクション

deleteFile

S3 バケットから指定されたファイルを削除します。

構文

<Action>deleteFile</Action>
<Input><![CDATA[
{
  "fileName" : "name-of-file-to-delete"
}
]]>
</Input>

例

<Action>deleteFile</Action>
<Input><![CDATA[
{
  "fileName" : "names.tmp"
}
]]>
</Input>

リクエスト パラメータ

パラメータ 説明 型 デフォルト 必須
fileName 削除するファイルの名前。 文字列 なし ○

レスポンス

なし

レスポンス プロパティ

なし

downloadFile

S3 バケットから指定されたファイルをダウンロードします。

構文

<Action>downloadFile</Action>
<Input><![CDATA[
{
  "fileName" : "filename"
}
]]>
</Input>
<Output>flow-variable</Output>

例

<Action>downloadFile</Action>
<Input><![CDATA[
{
  "fileName" : "product-sheet.pdf"
}
]]>
</Input>
<Output>downloaded.file</Output>

リクエスト パラメータ

パラメータ 説明 型 デフォルト 必須
fileName ダウンロードするファイルの名前。 文字列 なし ○

レスポンス

ファイルのコンテンツを含む content プロパティを持つ JSON。

{
  "content":"Hello World!"
}

レスポンス プロパティ

プロパティ 説明 型 デフォルト
content リクエストされたファイルのコンテンツを含む文字列。 文字列 なし

generateSignedURL

S3 バケットから指定されたファイルをダウンロードするための署名付き URL を生成します。

構文

<Action>generateSignedURL</Action>
<Input><![CDATA[
{
  "fileName": "filename",
  "expiresIn": duration-in-seconds
}
]]>
</Input>
<Output>flow-variable</Output>

例

<Action>generateSignedURL</Action>
<Input><![CDATA[
{
  "fileName": "product-info.pdf",
  "expiresIn": 3600
}
]]>
</Input>
<Output>download.url</Output>

リクエスト パラメータ

パラメータ 説明 型 デフォルト 必須
fileName ダウンロードするファイルの名前。 文字列 なし ○
expiresIn URL が期限切れになるまでの時間(秒単位)。 整数 86400 ×

レスポンス

生成された URL を含む url 文字列プロパティを持つ JSON。

{
  "url":"https://fake.s3.amazonaws.com/hello_world.txt?AWSAccessKeyId=123&Expires=1542753572&Signature=ABC"
}

レスポンス プロパティ

プロパティ 説明 型 デフォルト
url 要求されたファイルの URL。 文字列 なし

listFiles

AWS Lambda 関数の実行を呼び出します

構文

<Action>listFiles</Action>
<Input><![CDATA[{}]]></Input>
<Output>flow-variable</Output>

リクエスト パラメータ

なし

レスポンス

S3 ファイル名の配列。

["hello_world.txt"]

レスポンス プロパティ

なし

構成リファレンス

この拡張機能を API プロキシで使用するように構成してデプロイする場合は、以下のプロパティを使用します。Apigee Console で拡張機能を構成する手順については、拡張機能の追加と構成をご覧ください。

拡張機能の共通プロパティ

すべての拡張機能には次のプロパティがあります。

プロパティ 説明 デフォルト 必須
name この拡張機能に付ける名前。 なし ○
packageName Apigee Edge から提供された拡張機能パッケージの名前。 なし ○
version 拡張機能を構成する拡張機能パッケージのバージョン番号。 なし ○
configuration 追加する拡張機能に固有の構成値。この拡張機能パッケージのプロパティをご覧ください。 なし ○

この拡張機能パッケージのプロパティ

この拡張機能に固有の以下の構成プロパティに値を指定します。

プロパティ 説明 デフォルト 必須
configuration 使用する Amazon S3 バケットの名前を入力します(例: sample-bucket)。 なし ○
credentials Apigee Edge コンソールに入力する場合は、次の形式の Amazon アクセスキー ID とアクセスキーを含む JSON ファイルになります。

{
"accessKeyId" : access-key-ID,
"secretAccessKey" : secret-access-key
}

Management API で設定する場合は、キーの JSON ファイルから生成された base64 エンコード値になります。
なし ○