31.5. 使用方法
31.5.1. S3 プロデューサーによって評価されるメッセージヘッダー
ヘッダー | タイプ | 説明 |
---|---|---|
|
| このオブジェクトが保存されるバケット名、または現在の操作に使用されるバケット名 |
|
| Camel 2.18: 現在の操作に使用されるバケット宛先名。 |
|
| このオブジェクトのコンテンツの長さ。 |
|
| このオブジェクトのコンテンツタイプ。 |
|
| Camel 2.8.2: このオブジェクトのコンテンツコントロール。 |
|
| Camel 2.8.2: このオブジェクトのコンテンツ処理。 |
|
| Camel 2.8.2: このオブジェクトのコンテンツエンコーディング。 |
|
| Camel 2.8.2: このオブジェクトの md5 チェックサム。 |
|
| Camel 2.18: 現在の操作に使用される宛先キー。 |
|
| このオブジェクトが格納されるキー、または現在の操作に使用されるキー |
|
| Camel 2.8.2: このオブジェクトの最終変更タイムスタンプ。 |
|
| Camel 2.18 : 実行する操作。許可されている値は、copyObject、deleteObject、listBuckets、deleteBucket、downloadLink、listObjects です。 |
|
| Camel 2.8.4: このオブジェクトのストレージクラス。 |
|
|
Camel 2.11.0: オブジェクトに適用される既定の ACL。許可されている値については、 |
|
|
Camel 2.11.0: 適切に構築された Amazon S3 Access Control List オブジェクト。詳細については、 |
|
| Camel 2.15.0 : カスタム objectMetadata ヘッダーの取得または設定をサポート。 |
| String | Camel 2.16: AWS が管理するキーを使用してオブジェクトを暗号化するときに、サーバー側の暗号化アルゴリズムを設定します。たとえば、AES256 を使用します。 |
|
| 現在の操作から格納または返されるオブジェクトのバージョン ID |
31.5.2. S3 プロデューサーによって設定されたメッセージヘッダー
ヘッダー | タイプ | 説明 |
---|---|---|
|
| 新しくアップロードされたオブジェクトの ETag 値。 |
|
| 新しくアップロードされたオブジェクトの オプション のバージョン ID。 |
|
| URL ダウンロードリンクの有効期限 (ミリ秒)。リンクは CamelAwsS3DownloadLink レスポンスヘッダーに保存されます。 |
31.5.3. S3 コンシューマーによって設定されたメッセージヘッダー
ヘッダー | タイプ | 説明 |
---|---|---|
|
| このオブジェクトが格納されるキー。 |
|
| このオブジェクトが含まれるバケットの名前。 |
|
| RFC 1864 に従って、関連付けられたオブジェクトの 16 進数でエンコードされた 128 ビット MD5 ダイジェスト。このデータは、呼び出し元によって受信されたデータが Amazon S3 によって送信されたデータと同じであることを確認するための整合性チェックとして使用されます。 |
|
| Last-Modified ヘッダーの値。Amazon S3 が関連付けられたオブジェクトへの変更を最後に記録した日時を示します。 |
|
| 関連する Amazon S3 オブジェクトのバージョン ID (利用可能な場合)。バージョン ID は、オブジェクトのバージョニングが有効になっている Amazon S3 バケットにオブジェクトがアップロードされた場合にのみ、オブジェクトに割り当てられます。 |
|
| 関連付けられたオブジェクトに格納されているコンテンツのタイプを示す Content-Type HTTP ヘッダー。このヘッダーの値は、標準の MIME タイプです。 |
|
| RFC 1864 に従って、関連付けられたオブジェクト (ヘッダーを含まないコンテンツ) の base64 でエンコードされた 128 ビット MD5 ダイジェスト。このデータは、Amazon S3 が受信したデータが発信者が送信したデータと同じであることを確認するためのメッセージ整合性チェックとして使用されます。 |
|
| 関連付けられたオブジェクトのサイズをバイト単位で示す Content-Length HTTP ヘッダー。 |
|
| オブジェクトに適用されたコンテンツエンコーディングと、Content-Type フィールドによって参照されるメディアタイプを取得するために適用する必要があるデコードメカニズムを指定する、オプション の Content-Encoding HTTP ヘッダー。 |
|
| オプション の Content-Disposition HTTP ヘッダー。保存するオブジェクトの推奨ファイル名などの表示情報を指定します。 |
|
| ユーザーが HTTP 要求/応答チェーンに沿ってキャッシュ動作を指定できるようにする、オプション の Cache-Control HTTP ヘッダー。 |
| String | Camel 2.16: AWS が管理するキーを使用してオブジェクトを暗号化するときに、サーバー側の暗号化アルゴリズムを設定します。 |
31.5.4. S3 プロデューサーの操作
Camel-AWS s3 コンポーネントは、プロデューサー側で次の操作を提供します。
- copyObject
- deleteObject
- listBuckets
- deleteBucket
- downloadLink
- listObjects
31.5.5. 高度な AmazonS3 設定
Camel アプリケーションがファイアウォールの背後で実行されている場合、または AmazonS3
インスタンス設定をより詳細に制御する必要がある場合は、独自のインスタンスを作成できます。
AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey"); ClientConfiguration clientConfiguration = new ClientConfiguration(); clientConfiguration.setProxyHost("http://myProxyHost"); clientConfiguration.setProxyPort(8080); AmazonS3 client = new AmazonS3Client(awsCredentials, clientConfiguration); registry.bind("client", client);
Camel aws-s3 コンポーネント設定で参照します。
from("aws-s3://MyBucket?amazonS3Client=#client&delay=5000&maxMessagesPerPoll=5") .to("mock:result");
31.5.6. S3 コンポーネントで KMS を使用する
AWS インフラストラクチャーを使用して AWS KMS を使用してデータを暗号化/復号化するには、次の例のように 2.21.x で導入されたオプションを使用できます。
from("file:tmp/test?fileName=test.txt") .setHeader(S3Constants.KEY, constant("testFile")) .to("aws-s3://mybucket?amazonS3Client=#client&useAwsKMS=true&awsKMSKeyId=3f0637ad-296a-3dfe-a796-e60654fb128c");
このようにして、KMS キー 3f0637ad-296a-3dfe-a796-e60654fb128c を使用してファイル test.txt を暗号化するよう S3 に依頼します。このファイルのダウンロードを要求すると、ダウンロードの直前に復号化が行われます。
31.5.7. s3 コンポーネントで useIAMCredentials を使用する
AWS IAM クレデンシャルを使用するには、Camel アプリケーションを起動する EC2 に、効果的に実行するためにアタッチされた適切なポリシーを含む IAM ロールが関連付けられていることを最初に確認する必要があります。この機能は、リモートインスタンスでのみ true に設定する必要があることに注意してください。さらに明確にするために、IAM は AWS 固有のコンポーネントであるため、静的認証情報をローカルで使用する必要がありますが、AWS 環境は管理が容易になるはずです。これを実装して理解したら、AWS 環境のクエリーパラメーター useIAMCredentials を true に設定できます。これをローカル環境とリモート環境に基づいて効果的にオンとオフを切り替えるには、システム環境変数でこのクエリーパラメーターを有効にすることを検討できます。たとえば、"isRemote" というシステム環境変数が true に設定されている場合、コードで "useIAMCredentials" クエリーパラメーターを "true" に設定できます (これを行うには他にも多くの方法があり、これは単純な例として機能するはずです)。静的認証情報の必要性が完全になくなるわけではありませんが、AWS 環境で IAM 認証情報を使用すると、リモート環境で更新する必要がなくなり、セキュリティーが大幅に向上します (IAM 認証情報は 6 時間ごとに自動的に更新され、ポリシーが更新されると更新されます)。更新しました)。これは AWS が認証情報を管理するために推奨する方法であるため、できるだけ頻繁に使用する必要があります。