次の例は、URL から Amazon S3 に画像を保存し、画像を取得して表示する方法を示しています。
始める前に
Anypoint Studio でこのサンプルが機能するように、Amazon Web Services ログイン情報を提供する必要があります。次のいずれかを実行できます。
-
コード内で変数を値に置き換える。
-
src/main/resources/mule-artifact.properties ファイルで各変数の値を指定する。
手順の例
-
Studio で新しい Mule プロジェクトを作成します。
-
[HTTP] > [Listener] をキャンバスにドラッグし、それを選択してプロパティエディターを開きます。
-
新しい HTTP リスナー設定グローバル要素を追加します。
-
[General Settings (一般設定)] で、[+] ボタンをクリックします。
-
次の HTTP パラメーターを設定します。その他の項目はデフォルト値のままにし、[OK] をクリックします。
項目 値 Name (名前)
HTTP_Listener_Configuration
Host (ホスト)
127.0.0.1
Port (ポート)
8081
-
HTTP リスナー設定グローバル要素を参照します。[General (一般)] タブで、
/ パスを指定します。
-
-
Amazon S3 Connector をフローにドラッグし、コネクタをダブルクリックしてそのプロパティエディターを開きます。
-
選択する既存の Amazon S3 Connector グローバル要素がない場合、[Extension Configuration (拡張機能設定)] 項目の横にある [+] 記号をクリックします。
-
グローバル要素のプロパティを設定し、[OK] をクリックします。
-
コネクタのパラメーターを設定します。
項目 値 Name (名前)
コネクタインスタンスの名前 (
Amazon_S3_Configuration など)。General (全般)
コネクタの全般設定。
Region Endpoint (リージョンエンドポイント)
us-east-1 (デフォルト) などのリージョン。Access key (アクセスキー)
接続アクセスキー。
Secret key (シークレットキー)
接続シークレットキー。
-
Create Bucket 操作をフローまでドラッグします。
項目 値 Display Name (表示名)
[Create new bucket (新しいバケットを作成)] など、選択した表示名。Connector configuration (コネクタ設定)
コネクタのグローバル設定。
Bucket name (バケット名)
新規作成したバケットの名前。
ACL
PRIVATE (デフォルト) アクセス制御リスト。既定 ACL は定義済みの許可です。
-
MuleSoft に MuleSoft ロゴを要求する [HTTP] > [Connector (コネクタ)] を追加します。
項目 値 Display Name (表示名)
コネクタインスタンスの名前。この例では、[HTTP] > [Connector (コネクタ)] の名前は「
Get MuleSoft logo」となっています。Configuration (設定)
[Host (ホスト)] が「
developer.mulesoft.com」、[Protocol (プロトコル)] が「HTTPS」、[Port (ポート)] が「80」の設定。[URL or Path (URL またはパス)]
/sites/all/themes/muletheme/images/mulesoft_dev_logo_v2.svg。 -
要求された MuleSoft ロゴを選択された Amazon S3 バケットに作成する Put Object 操作をフローまでドラッグします。
項目 値 Display Name (表示名)
[Create logo object in S3 bucket (ロゴオブジェクトを S3 バケットに作成)] など、選択した表示名。Connector Configuration (コネクタ設定)
コネクタのグローバル設定。
Bucket Name (バケット名)
新しいオブジェクトが作成されるバケットの名前。
Key (キー)
新規作成したオブジェクトの名前。
Content (コンテンツ)
オブジェクトのコンテンツ。
Object ACL (オブジェクト ACL)
アクセスコントロールリスト。
-
新規作成された MuleSoft ロゴ画像をバケットから取得する Get Object 操作をフローまでドラッグします。
項目 値 Display Name (表示名)
[Get Image (画像を取得)] など、選択した表示名。Connector Configuration (コネクタ設定)
コネクタのグローバル設定。
Bucket Name (バケット名)
オブジェクトが保存されているバケットの名前。
Object Key (オブジェクトキー)
取得するオブジェクトの名前。
-
オブジェクトを削除する Delete Object 操作をフローまでドラッグします。Delete Object 操作の戻り値のデータ型は void であるため、ペイロードには Get Object 操作で返されるオブジェクトが含まれます。
項目 値 Display Name (表示名)
[Delete created object (作成したオブジェクトを削除)] など、選択した表示名。Connector Configuration (コネクタ設定)
コネクタのグローバル設定。
Bucket Name (バケット名)
オブジェクトが保存されているバケットの名前。
Object Name (オブジェクト名)
削除するオブジェクトの名前。
-
バケットを削除する Delete Bucket 操作をフローまでドラッグします。Delete Bucket 操作の戻り値のデータ型は void であるため、ペイロードには Get Object 操作で返されるオブジェクトが含まれます。
項目 値 Display Name (表示名)
[Delete created bucket (作成したバケットを削除)] など、選択した表示名。Connector Configuration (コネクタ設定)
コネクタのグローバル設定。
Bucket Name (バケット名)
削除するバケットの名前。
例の XML
この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:s3="http://www.mulesoft.org/schema/mule/s3"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/s3 http://www.mulesoft.org/schema/mule/s3/current/mule-s3.xsd">
<http:listener-config name="HTTP_Listener_config"
doc:name="HTTP Listener config" doc:id="DOC_ID">
<http:listener-connection host="0.0.0.0"
port="8081" />
</http:listener-config>
<configuration-properties doc:name="Configuration properties" doc:id="DOC_ID" file="mule-artifact.properties" />
<s3:config name="Amazon_S3_Configuration" doc:name="Amazon S3 Configuration" doc:id="DOC_ID" >
<s3:connection accessKey="${config.accessKey}" secretKey="${config.secretKey}" />
</s3:config>
<http:request-config name="HTTP_Request_configuration" doc:name="HTTP Request configuration" doc:id="DOC_ID">
<http:request-connection protocol="HTTPS" host="developer.mulesoft.com"/>
</http:request-config>
<flow name="docu-demoFlow" doc:id="DOC_ID" >
<http:listener doc:name="Listener" doc:id="DOC_ID" config-ref="HTTP_Listener_config" path="/"/>
<s3:create-bucket doc:name="Create new bucket" doc:id="DOC_ID" config-ref="Amazon_S3_Configuration" bucketName="${bucket.name}" acl="PRIVATE"/>
<http:request method="GET" doc:name="Get Mulesoft logo" doc:id="DOC_ID" path="/sites/all/themes/muletheme/images/mulesoft_dev_logo_v2.svg" config-ref="HTTP_Request_configuration"/>
<s3:put-object doc:name="Create logo object in S3 bucket" doc:id="DOC_ID" config-ref="Amazon_S3_Configuration" bucketName="${bucket.name}" key="${file.name}" objectACL="PRIVATE"/>
<s3:get-object doc:name="Get image" doc:id="DOC_ID" config-ref="Amazon_S3_Configuration" bucketName="${bucket.name}" key="${file.name}"/>
<s3:delete-object doc:name="Delete created object" doc:id="DOC_ID" config-ref="Amazon_S3_Configuration" bucketName="${bucket.name}" key="${file.name}"/>
<s3:delete-bucket doc:name="Delete created bucket" doc:id="DOC_ID" config-ref="Amazon_S3_Configuration" bucketName="${bucket.name}"/>
</flow>
</mule>