第15章 Box


Box コンポーネント

Camel 2.14 から利用可能
Box コンポーネントは、box-java-sdk-v2 を使用してアクセス可能なすべての Box.com API へのアクセスを提供します。これにより、ファイルのアップロードやダウンロード、フォルダーの作成、編集、管理を行うメッセージの作成、編集、管理を行うことができます。また、ユーザーアカウントへの更新のポーリングや企業アカウントの変更などを可能にする API もサポートしています。
Box.com では、すべてのクライアントアプリケーション認証に OAuth2.0 を使用する必要があります。アカウントで camel-box を使用するには、https://app.box.com/developers/services/edit/ の Box.com 内に新しいアプリケーションを作成する必要があります。Box アプリケーションのクライアント ID およびシークレットにより、現在のユーザーを必要とする Box API にアクセスできます。ユーザーアクセストークンは、エンドユーザーの API によって生成および管理されます。また、Camel アプリケーションは com.box.boxjavalibv2.authorization.IAuthSecureStorage の実装を登録し、com.box.boxjavalibv2.dao.IAuthData OAuth トークン を提供 します。
TLS (Transport Layer Security)を使用するように camel-box コンポーネントを設定するには、Security Guide の Configuring Transport Security for Camel Components の章を参照してください
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
	<dependency>
    	<groupId>org.apache.camel</groupId>
    	<artifactId>camel-box</artifactId>
    	<version>${camel-version}</version>
	</dependency>
Copy to Clipboard Toggle word wrap

URI 形式

    box://endpoint-prefix/endpoint?[options]
Copy to Clipboard Toggle word wrap
エンドポイント接頭辞は以下のいずれかになります。
  • コラボレーション
  • コメント
  • events
  • files
  • folders
  • groups
  • poll-events
  • search
  • 共有コメント
  • shared-files
  • shared-folders
  • shared-items
  • users

Box コンポーネント

Box コンポーネントは、以下のオプションで設定できます。これらのオプションは、org.apache.camel.component.box.BoxConfiguration タイプのコンポーネントの Bean プロパティー configuration を使用して提供できます。これらのオプションは、エンドポイント URI で指定することもできます。
Expand
オプション
タイプ
説明
authSecureStorage
com.box.boxjavalibv2.authorization.IAuthSecureStorage
OAuth Secure Storage コールバックは、OAuth トークンを提供および保存するために使用できます。コールバックは最初の呼び出し時に null を返し、コンポーネントがアプリケーションのログインおよび承認を行い、OAuth トークンを取得できるようにします。これにより、セキュアなストレージに保存できます。コンポーネントがトークンを自動的に作成できるようにするには、ユーザーパスワードを指定する必要があります。
boxConfig
com.box.boxjavalibv2.IBoxConfig
カスタム Box SDK 設定(通常は必要ありません)
clientId
文字列
Box アプリケーションクライアント ID
clientSecret
文字列
Box アプリケーションクライアントシークレット
connectionManagerBuilder
com.box.boxjavalibv2.BoxConnectionManagerBuilder
カスタム Box 接続マネージャービルダー。基礎となる HttpClient の最大接続などのデフォルト設定を上書きするために使用されます。
httpParams
java.util.Map
プロキシーホストなどの設定用のカスタム HTTP パラメーター
loginTimeout
int
コンポーネントが Box.com からの応答を待つ時間。デフォルトは 30 秒です。
refreshListener
com.box.boxjavalibv2.authorization.OAuthRefreshListener
Camel アプリケーションがルート外のアクセストークンを使用する必要がある場合は、トークン更新の OAuth リスナー
revokeOnShutdown
boolean
ルートシャットダウン時に OAuth 更新トークンを取り消すフラグ。デフォルトは false です。ユーザーパスワードを指定して、カスタム IAuthSecureStorage または自動コンポーネントのログインのいずれかを使用して再起動時に新しい更新トークンが必要になります。
sharedLink
文字列
shared-* エンドポイントのボックス共有リンク。共有コメント、ファイル、またはフォルダーのリンクにすることができます。
sharedPassword
文字列
共有リンクに関連付けられたパスワード。sharedLink で指定する必要があります。
userName
文字列
Box ユーザー名(指定が必要)
userPassword
文字列
Box ユーザーパスワード。authSecureStorage が設定されていない場合や、最初の呼び出しで null を返す必要があります。

プロデューサーエンドポイント:

プロデューサーエンドポイントはエンドポイント接頭辞を使用し、続いてエンドポイント名と以下で説明する関連オプションを使用できます。一部のエンドポイントには、短縮エイリアスを使用できます。エンドポイント URI には 接頭辞が含まれている必要があります。
必須ではないエンドポイントオプションは [] で表されます。エンドポイントに必須のオプションがない場合は、[] オプションのセットの 1 つを指定する必要があります。プロデューサーエンドポイントは、Camel Exchange In メッセージに含まれる値を持つ endpoint オプションの名前が含まれる必要がある特別なオプション inBody を使用することもできます。
エンドポイントオプションは、エンドポイント URI またはメッセージヘッダーで動的に指定できます。メッセージヘッダー名は CamelBox.<option> の形式で指定する必要があります。inBody オプションはメッセージヘッダーを上書きすることに注意してください。つまり、エンドポイントオプション inBody=optionCamelBox.option ヘッダーを上書きすることに注意してください。
エンドポイント URI またはメッセージヘッダーのいずれかで defaultRequest オプションに値が指定されていない場合、これは null であると想定されます。null 値は、他のオプションが一致するエンドポイントを満たさない場合にのみ使用されることに注意してください。
Box API エラーが発生すると、エンドポイントは com.box.restclientv2.exceptions.BoxSDKException 派生例外原因で RuntimeCamelException を出力します。

エンドポイント接頭辞コラボレーション

Box のコラボレーションに関する詳細は、https://developers.box.com/docs/#collaborations を参照してください。以下のエンドポイントは、以下のように接頭辞 collaborations で呼び出すことができます。
    box://collaborations/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
エンドポイント
短縮形エイリアス
オプション
結果ボディーのタイプ
createCollaboration
create
collabRequest, folderId
com.box.boxjavalibv2.dao.BoxCollaboration
deleteCollaboration
delete
collabId, defaultRequest
getAllCollaborations
allCollaborations
getAllCollabsRequest
java.util.List
getCollaboration
コラボレーション
collabId, defaultRequest
com.box.boxjavalibv2.dao.BoxCollaboration
updateCollaboration
update
collabId, collabRequest
com.box.boxjavalibv2.dao.BoxCollaboration

コラボレーションの URI オプション

Expand
名前
タイプ
collabId
文字列
collabRequest
com.box.boxjavalibv2.requests.requestobjects.BoxCollabRequestObject
defaultRequest
com.box.restclientv2.requestsbase.BoxDefaultRequestObject
folderId
文字列
getAllCollabsRequest
com.box.boxjavalibv2.requests.requestobjects.BoxGetAllCollabsRequestObject

エンドポイント接頭辞イベント

Box イベントの詳細は、https://developers.box.com/docs/#events を参照してください。このエンドポイントはプロデューサーで使用できますが、Box イベントは poll-events エンドポイント接頭辞を使用してコンシューマーエンドポイントとしてより適しています。以下のエンドポイントは、以下のように接頭辞 events で呼び出すことができます。
  box://events/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
エンドポイント
短縮形エイリアス
オプション
結果ボディーのタイプ
getEventOptions
eventOptions
defaultRequest
com.box.boxjavalibv2.dao.BoxCollection
getEvents
events
eventRequest
com.box.boxjavalibv2.dao.BoxEventCollection

イベントの URI オプション

Expand
名前
タイプ
defaultRequest
com.box.restclientv2.requestsbase.BoxDefaultRequestObject
eventRequest
com.box.boxjavalibv2.requests.requestobjects.BoxEventRequestObject

エンドポイント接頭辞グループ

Box グループの詳細は、https://developers.box.com/docs/#groups を参照してください。以下のエンドポイントは、以下のように接頭辞 groups で呼び出すことができます。
    box://groups/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
エンドポイント
短縮形エイリアス
オプション
結果ボディーのタイプ
createGroup
[groupRequest], [name]
com.box.boxjavalibv2.dao.BoxGroup
createMembership
[groupId, role, userId], [groupMembershipRequest]
com.box.boxjavalibv2.dao.BoxGroupMembership
deleteGroup
delete
defaultRequest, groupId
deleteMembership
delete
defaultRequest, membershipId
getAllCollaborations
allCollaborations
defaultRequest, groupId
com.box.boxjavalibv2.dao.BoxCollection
getAllGroups
allGroups
defaultRequest
com.box.boxjavalibv2.dao.BoxCollection
getMembership
メンバーシップ
defaultRequest, membershipId
com.box.boxjavalibv2.dao.BoxGroupMembership
getMemberships
メンバーシップ
defaultRequest, groupId
com.box.boxjavalibv2.dao.BoxCollection
updateGroup
update
groupId、groupRequest
com.box.boxjavalibv2.dao.BoxGroup
updateMembership
update
[groupMembershipRequest], [role], membershipId
com.box.boxjavalibv2.dao.BoxGroupMembership

グループの URI オプション

Expand
名前
タイプ
defaultRequest
com.box.restclientv2.requestsbase.BoxDefaultRequestObject
groupId
文字列
groupMembershipRequest
com.box.boxjavalibv2.requests.requestobjects.BoxGroupMembershipRequestObject
groupRequest
com.box.boxjavalibv2.requests.requestobjects.BoxGroupRequestObject
membershipId
文字列
name
文字列
role
文字列
userId
文字列

エンドポイント接頭辞検索

Box 検索 API の詳細は、https://developers.box.com/docs/#search を参照してください。以下のエンドポイントは、以下のように接頭辞 search で呼び出すことができます。
    box://search/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
エンドポイント
短縮形エイリアス
オプション
結果ボディーのタイプ
search
defaultRequest、searchQuery
com.box.boxjavalibv2.dao.BoxCollection

検索の URI オプション

Expand
名前
タイプ
defaultRequest
com.box.restclientv2.requestsbase.BoxDefaultRequestObject
searchQuery
文字列

エンドポイント接頭辞のコメントと共有コメント

Box コメントの詳細は、https://developers.box.com/docs/#comments を参照してください。以下のエンドポイントは、以下のように接頭辞 コメント または shared-comments で呼び出すことができます。shared-comments 接頭辞には sharedLink および sharedPassword プロパティーが必要です。
    box://comments/endpoint?[options]
    box://shared-comments/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
エンドポイント
短縮形エイリアス
オプション
結果ボディーのタイプ
addComment
[commentRequest], [commentedItemId, commentedItemType, message]
com.box.boxjavalibv2.dao.BoxComment
deleteComment
delete
commentId, defaultRequest
getComment
comment
commentId, defaultRequest
com.box.boxjavalibv2.dao.BoxComment
updateComment
update
commentId, commentRequest
com.box.boxjavalibv2.dao.BoxComment

コメントおよび共有コメントの URI オプション

Expand
名前
タイプ
commentId
文字列
commentRequest
com.box.boxjavalibv2.requests.requestobjects.BoxCommentRequestObject
commentedItemId
文字列
commentedItemType
com.box.boxjavalibv2.dao.IBoxType
defaultRequest
com.box.restclientv2.requestsbase.BoxDefaultRequestObject
message
文字列

エンドポイント接頭辞ファイルと共有ファイル

Box ファイルの詳細は、https://developers.box.com/docs/#files を参照してください。以下のエンドポイントは、以下のように接頭辞 files または shared-files で呼び出すことができます。shared-files 接頭辞には sharedLink および sharedPassword プロパティーが必要です。
   box://files/endpoint?[options]
   box://shared-files/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
エンドポイント
短縮形エイリアス
オプション
結果ボディーのタイプ
copyFile
fileId, itemCopyRequest
com.box.boxjavalibv2.dao.BoxFile
createSharedLink
create
fileId, sharedLinkRequest
com.box.boxjavalibv2.dao.BoxFile
deleteFile
defaultRequest, fileId
downloadFile
ダウンロード
[destination, listener], [listener, outputStreams], defaultRequest, fileId
java.io.InputStream
downloadThumbnail
ダウンロード
extension, fileId, imageRequest
java.io.InputStream
getFile
file
defaultRequest, fileId
com.box.boxjavalibv2.dao.BoxFile
getFileComments
fileComments
defaultRequest, fileId
com.box.boxjavalibv2.dao.BoxCollection
getFileVersions
fileVersions
defaultRequest, fileId
java.util.List
getPreview
preview
extension, fileId, imageRequest
com.box.boxjavalibv2.dao.BoxPreview
getThumbnail
thumbnail
extension, fileId, imageRequest
com.box.boxjavalibv2.dao.BoxThumbnail
updateFileInfo
update
fileId, fileRequest
com.box.boxjavalibv2.dao.BoxFile
uploadFile
upload
fileUploadRequest
com.box.boxjavalibv2.dao.BoxFile
uploadNewVersion
upload
fileId, fileUploadRequest
com.box.boxjavalibv2.dao.BoxFile

ファイルおよび shared-files の URI オプション

Expand
名前
タイプ
defaultRequest
com.box.restclientv2.requestsbase.BoxDefaultRequestObject
destination
java.io.File
extension
文字列
fileId
文字列
fileRequest
com.box.boxjavalibv2.requests.requestobjects.BoxFileRequestObject
fileUploadRequest
com.box.restclientv2.requestsbase.BoxFileUploadRequestObject
imageRequest
com.box.boxjavalibv2.requests.requestobjects.BoxImageRequestObject
itemCopyRequest
com.box.boxjavalibv2.requests.requestobjects.BoxItemCopyRequestObject
listener
com.box.boxjavalibv2.filetransfer.IFileTransferListener
outputStreams
java.io.OutputStream[]
sharedLinkRequest
com.box.boxjavalibv2.requests.requestobjects.BoxSharedLinkRequestObject

エンドポイント接頭辞フォルダーおよび共有フォルダー

Box フォルダーの詳細は、https://developers.box.com/docs/#folders を参照してください。以下のエンドポイントは、以下のように接頭辞 folders または shared-folders で呼び出すことができます。接頭辞 shared-folders には sharedLink および sharedPassword プロパティーが必要です。
    box://folders/endpoint?[options]
    box://shared-folders/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
エンドポイント
短縮形エイリアス
オプション
結果ボディーのタイプ
copyFolder
folderId, itemCopyRequest
com.box.boxjavalibv2.dao.BoxFolder
createFolder
create
folderRequest
com.box.boxjavalibv2.dao.BoxFolder
createSharedLink
create
folderId, sharedLinkRequest
com.box.boxjavalibv2.dao.BoxFolder
deleteFolder
delete
folderDeleteRequest, folderId
getFolder
folder
defaultRequest, folderId
com.box.boxjavalibv2.dao.BoxFolder
getFolderCollaborations
folderCollaborations
defaultRequest, folderId
java.util.List
getFolderItems
folderItems
folderId, pagingRequest
com.box.boxjavalibv2.dao.BoxCollection
updateFolderInfo
update
folderId, folderRequest
com.box.boxjavalibv2.dao.BoxFolder

フォルダーまたは共有フォルダーの URI オプション

Expand
名前
タイプ
defaultRequest
com.box.restclientv2.requestsbase.BoxDefaultRequestObject
folderDeleteRequest
com.box.boxjavalibv2.requests.requestobjects.BoxFolderDeleteRequestObject
folderId
文字列
folderRequest
com.box.boxjavalibv2.requests.requestobjects.BoxFolderRequestObject
itemCopyRequest
com.box.boxjavalibv2.requests.requestobjects.BoxItemCopyRequestObject
pagingRequest
com.box.boxjavalibv2.requests.requestobjects.BoxPagingRequestObject
sharedLinkRequest
com.box.boxjavalibv2.requests.requestobjects.BoxSharedLinkRequestObject

エンドポイント接頭辞 shared-items

Box 共有項目の詳細は、https://developers.box.com/docs/#shared-items を参照してください。以下のエンドポイントは、以下のように接頭辞 shared-items で呼び出すことができます。
    box://shared-items/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
エンドポイント
短縮形エイリアス
オプション
結果ボディーのタイプ
getSharedItem
sharedItem
defaultRequest
com.box.boxjavalibv2.dao.BoxItem

shared-items の URI オプション

Expand
名前
タイプ
defaultRequest
com.box.restclientv2.requestsbase.BoxDefaultRequestObject

エンドポイント接頭辞ユーザー

Box ユーザーの詳細は、https://developers.box.com/docs/#users を参照してください。以下のエンドポイントは、以下のように接頭辞 users で呼び出すことができます。
    box://users/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
エンドポイント
短縮形エイリアス
オプション
結果ボディーのタイプ
addEmailAlias
emailAliasRequest, userId
com.box.boxjavalibv2.dao.BoxEmailAlias
createEnterpriseUser
create
userRequest
com.box.boxjavalibv2.dao.BoxUser
deleteEmailAlias
defaultRequest, emailId, userId
deleteEnterpriseUser
userDeleteRequest, userId
getAllEnterpriseUser
allEnterpriseUser
defaultRequest, filterTerm
java.util.List
getCurrentUser
currentUser
defaultRequest
com.box.boxjavalibv2.dao.BoxUser
getEmailAliases
emailAliases
defaultRequest, userId
java.util.List
moveFolderToAnotherUser
folderId、simpleUserRequest、userId
com.box.boxjavalibv2.dao.BoxFolder
updateUserInformaiton
update
userId, userRequest
com.box.boxjavalibv2.dao.BoxUser
updateUserPrimaryLogin
update
userId, userUpdateLoginRequest
com.box.boxjavalibv2.dao.BoxUser

ユーザーの URI オプション

Expand
名前
タイプ
defaultRequest
com.box.restclientv2.requestsbase.BoxDefaultRequestObject
emailAliasRequest
com.box.boxjavalibv2.requests.requestobjects.BoxEmailAliasRequestObject
emailId
文字列
filterTerm
文字列
folderId
文字列
simpleUserRequest
com.box.boxjavalibv2.requests.requestobjects.BoxSimpleUserRequestObject
userDeleteRequest
com.box.boxjavalibv2.requests.requestobjects.BoxUserDeleteRequestObject
userId
文字列
userRequest
com.box.boxjavalibv2.requests.requestobjects.BoxUserRequestObject
userUpdateLoginRequest
com.box.boxjavalibv2.requests.requestobjects.BoxUserUpdateLoginRequestObject

コンシューマーエンドポイント:

Box イベントの詳細は https://developers.box.com/docs/#events および長いポーリングについては https://developers.box.com/docs/#events-long-polling を参照してください。コンシューマーエンドポイントは、次の例に示すように、エンドポイント接頭辞 poll-events のみを使用できます。デフォルトでは、コンシューマーは長いポーリングから com.box.boxjavalibv2.dao.BoxEventCollection を分割し、すべての com.box.boxjavalibv2.dao.BoxEvent のエクスチェンジを作成します。コンシューマーが単一のエクスチェンジでコレクション全体を返すようにするには、URI オプション consumer.splitResult=false を使用します。
    box://poll-events/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
エンドポイント
短縮形エイリアス
オプション
結果ボディーのタイプ
poll
limit、streamPosition、streamType
デフォルトでは com.box.boxjavalibv2.dao.BoxEvent、または consumer.splitResult=false の場合は com.box.boxjavalibv2.dao.BoxEventCollection です。

poll-events の URI オプション

Expand
名前
タイプ
limit
整数
streamPosition
Long
streamType
文字列
splitResult
boolean

メッセージヘッダー

オプションはいずれも、CamelBox. 接頭辞を持つプロデューサーエンドポイントのメッセージヘッダーで指定できます。

メッセージボディー

すべての結果メッセージ本文は Box Java SDK によって提供されるオブジェクトを使用します。プロデューサーエンドポイントは、inBody エンドポイントパラメーターに受信メッセージボディーのオプション名を指定できます。

型コンバーター

Box コンポーネントは、GenericFile オブジェクトを File コンポーネントから com.box.restclientv2.requestsbase.Box File UploadRequestObject に変換して Box. com にファイルをアップロードするための Camel 型コンバーターも提供します。アップロードのターゲット folderId は、エクスチェンジプロパティー CamelBox.folderId で指定できます。エクスチェンジプロパティーが指定されていない場合、ルートフォルダー ID のデフォルト値が 0 になります。

ユースケース

以下のルートは、新しいファイルをユーザーのルートフォルダーにアップロードします。
	from("file:...")
		.to("box://files/upload/inBody=fileUploadRequest");
Copy to Clipboard Toggle word wrap
以下のルートは、ユーザーのアカウントをポーリングして更新を確認します。
	from("box://poll-events/poll?streamPosition=-1&streamType=all&limit=100")
		.to("bean:blah");
Copy to Clipboard Toggle word wrap
以下のルートは、動的ヘッダーオプションを持つプロデューサーを使用します。fileId プロパティーに Box ファイル ID があるため、以下の ようにCamelBox.fileIdヘッダーに割り当てられ ます。
	from("direct:foo")
		.setHeader("CamelBox.fileId", header("fileId"))
		.to("box://files/download")
		.to("file://...");
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat