10.7. AWS-S3


S3 コンポーネント

Camel 2.8 から利用可能
S3 コンポーネントは、Amazon の S3 サービスからの objetc の 保存および取得をサポートします。
前提条件
Amazon S3 を使用するには、有効な Amazon Web Services 開発者アカウントが必要です。詳細は Amazon S3 を参照してください。

URI 形式

aws-s3://bucket-name[?options]
Copy to Clipboard Toggle word wrap
バケットが存在しない場合は作成されます。URI にクエリーオプションは ?options=value&option2=value&.. の形式で追加できます。

URI オプション

Expand
名前 デフォルト値 コンテキスト 説明
amazonS3Client null 共有 レジストリーの com.amazonaws.services.sqs.AmazonS3 への参照。
accessKey null 共有 Amazon AWS Access Key
secretKey null 共有 Amazon AWS Secret Key
amazonS3Endpoint null 共有 AWS-S3 クライアントが操作するリージョン。
region null プロデューサー バケットのあるリージョン。このオプションは com.amazonaws.services.s3.model.CreateBucketRequest で使用されます。
deleteAfterRead true コンシューマー 取得後に S3 からオブジェクトを削除します。
deleteAfterWrite false プロデューサー S3 ファイルのアップロード後の Camel 2.11.0 Delete ファイルオブジェクト
maxMessagesPerPoll 10 コンシューマー 1 回のポーリングで取得できるオブジェクトの最大数。com.amazonaws.services.s3.model.ListObjectsRequest で使用されています。
policy null 共有 camel 2.8.4: com.amazonaws.services.s3.AmazonS3#setBucketPolicy () メソッドに設定するこのキューのポリシー。
storageClass null プロデューサー camel 2.8.4: com.amazonaws.services.s3.model.PutObjectRequest リクエストに設定するストレージクラス。
prefix null コンシューマー Camel 2.10.1: 対象のオブジェクトのみを消費するために com.amazonaws.services.s3.model.ListObjectsRequest で使用される接頭辞。
multiPartUpload false プロデューサー Camel 2.15.0: true の場合、Camel はマルチパート形式でファイルをアップロードします。ここで、パートサイズは partSize オプションで指定できます。
partSize 25 * 1024 * 1024 プロデューサー Camel 2.15.0: マルチパートアップロードで使用される partSize を指定します。デフォルトは 25 MB です。
serverSideEncryption null プロデューサー camel 2.16: AWS 管理のキーを使用してオブジェクトを暗号化する際にサーバー側の暗号化アルゴリズムを設定します。たとえば、AES256 を使用します。
proxyHost null プロデューサー Camel 2.16: クライアント定義内で使用されるプロキシーホストを指定します。
proxyPort null プロデューサー Camel 2.16: クライアント定義内で使用されるプロキシーポートを指定します。
includeBody null コンシューマー Camel 2.17: true の場合、エクスチェンジボディーはファイルの内容にストリームに設定されます。false の場合、ヘッダーは S3 オブジェクトメタデータで設定されますが、ボディーは null になります。
必要な S3 コンポーネントのオプション

バッチコンシューマー

このコンポーネントは、バッチコンシューマー を 実装し ます。
これにより、たとえば、このバッチに存在するメッセージの数を把握し、Aggregator はこの数のメッセージを集約できます。

使用方法

S3 プロデューサーによって評価されるメッセージヘッダー

Expand
ヘッダー タイプ 説明
CamelAwsS3Key 文字列 このオブジェクトが保存されるキー。
CamelAwsS3ContentLength Long このオブジェクトのコンテンツの長さ。
CamelAwsS3ContentType 文字列 このオブジェクトのコンテンツタイプ。
CamelAwsS3ContentControl 文字列 このオブジェクトのコンテンツ制御。
CamelAwsS3ContentDisposition 文字列 このオブジェクトの内容。
CamelAwsS3ContentEncoding 文字列 このオブジェクトのコンテンツエンコーディング。
CamelAwsS3ContentMD5 文字列 このオブジェクトの md5 チェックサム。
CamelAwsS3LastModified java.util.Date このオブジェクトの最後に変更されたタイムスタンプ。
CamelAwsS3StorageClass 文字列 *Camel 2.8.4:* このオブジェクトのストレージクラス。
CamelAwsS3CannedAcl 文字列 Camel 2.11.0: オブジェクトに適用される正規の acl。許可される値の com.amazonaws.services.s3.model.CannedAccessControlList を参照してください。
CamelAwsS3Acl com.amazonaws.services.s3.model.AccessControlList Camel 2.11.0: 適切に構築された Amazon S3 Access Control List オブジェクト。詳細は、com.amazonaws.services.s3.model.AccessControlList を参照してください。
CamelAwsS3Headers Map<String,String> Camel 2.15.0: カスタム objectMetadata ヘッダーの取得および 設定をサポートします。
CamelAwsS3ServerSideEncryption 文字列 camel 2.16: AWS 管理のキーを使用してオブジェクトを暗号化する際にサーバー側の暗号化アルゴリズムを設定します。たとえば、AES256 を使用します。

S3 プロデューサーによって設定されたメッセージヘッダー

Expand
ヘッダー タイプ 説明
CamelAwsS3ETag 文字列 新たにアップロードしたオブジェクトの ETag 値。
CamelAwsS3VersionId 文字列 新たにアップロードしたオブジェクトの オプション のバージョン ID。

S3 コンシューマーによって設定されたメッセージヘッダー

Expand
ヘッダー タイプ 説明
CamelAwsS3Key 文字列 このオブジェクトが保存されるキー。
CamelAwsS3BucketName 文字列 このオブジェクトが含まれるバケットの名前。
CamelAwsS3ETag 文字列 RFC 1864 に従って、関連付けられたオブジェクトの 16 進エンコードされた 128 ビット MD5 ダイジェスト。このデータは整合性チェックとして使用され、呼び出し元が受信したデータが Amazon S3 によって送信されたデータと同じであることを確認します。
CamelAwsS3LastModified 日付 Amazon S3 が最後に関連付けられたオブジェクトへの変更を記録した日時を示す Last-Modified ヘッダーの値。
CamelAwsS3VersionId 文字列 関連する Amazon S3 オブジェクトのバージョン ID (ある場合)。バージョン ID は、オブジェクトがオブジェクトのバージョン管理が有効にされている Amazon S3 バケットにアップロードされる場合にのみオブジェクトに割り当てられます。
CamelAwsS3ContentType 文字列 関連付けられたオブジェクトに保存されるコンテンツのタイプを示す Content-Type HTTP ヘッダー。このヘッダーの値は標準の MIME タイプです。
CamelAwsS3ContentMD5 文字列 RFC 1864 に準拠した、関連付けられたオブジェクト(ヘッダーを含まないコンテンツ)の base64 でエンコードされた 128 ビット MD5 ダイジェスト。このデータは、Amazon S3 が受信したデータが呼び出し元によって送信されたデータと同じであることを確認するために、メッセージ整合性チェックとして使用されます。
CamelAwsS3ContentLength Long 関連付けられたオブジェクトのサイズ(バイト単位)を示す Content-Length HTTP ヘッダー。
CamelAwsS3ContentEncoding 文字列 オプション の Content-Encoding HTTP ヘッダーには、オブジェクトに適用されたコンテンツエンコーディング、および Content-Type フィールドで参照されるメディアタイプを取得するために適用する必要のあるデコードメカニズムを指定します。
CamelAwsS3ContentDisposition 文字列 オプション の Content-Disposition HTTP ヘッダー。これは、オブジェクトの保存に使用する推奨ファイル名などの表示情報を指定します。
CamelAwsS3ContentControl 文字列 オプション の Cache-Control HTTP ヘッダー。これにより、ユーザーは HTTP 要求/リプライチェーンでキャッシュ動作を指定できます。
CamelAwsS3ServerSideEncryption 文字列 Camel 2.16: AWS 管理のキーを使用してオブジェクトを暗号化する際にサーバー側の暗号化アルゴリズム。

高度な 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);
Copy to Clipboard Toggle word wrap
Camel aws-s3 コンポーネント設定でこれを参照します。
from("aws-s3://MyBucket?amazonS3Client=#client&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
Copy to Clipboard Toggle word wrap

Dependencies

Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap
ここで、$\{camel-version\} は実際の Camel バージョン(2.8 以降)に置き換える必要があります。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat