229.6. GridFS 操作 - プロデューサーエンドポイント
229.6.1. count
コレクション内のファイルの総数を返し、OUT メッセージボディーとして整数を返します。
// from("direct:count").to("mongodb-gridfs?database=tickets&operation=count"); Integer result = template.requestBodyAndHeader("direct:count", "irrelevantBody"); assertTrue("Result is not of type Long", result instanceof Integer);
ファイル名ヘッダーを提供して、そのファイル名に一致するファイルの数を提供できます。
Map<String, Object> headers = new HashMap<String, Object>(); headers.put(Exchange.FILE_NAME, "filename.txt"); Integer count = template.requestBodyAndHeaders("direct:count", query, headers);
229.6.2. listAll
すべてのファイル名とその ID をタブ区切りのストリームで一覧表示する Reader を返します。
// from("direct:listAll").to("mongodb-gridfs?database=tickets&operation=listAll"); Reader result = template.requestBodyAndHeader("direct:listAll", "irrelevantBody"); filename1.txt 1252314321 filename2.txt 2897651254
229.6.3. findOne
GridFS システムでファイルを検索し、本文をコンテンツの InputStream に設定します。また、ヘッダーを持つメタデータも提供します。受信ヘッダーの Exchange.FILE_NAME を使用して、検索するファイルを決定します。
// from("direct:findOne").to("mongodb-gridfs?database=tickets&operation=findOne"); Map<String, Object> headers = new HashMap<String, Object>(); headers.put(Exchange.FILE_NAME, "filename.txt"); InputStream result = template.requestBodyAndHeaders("direct:findOne", "irrelevantBody", headers);
229.6.4. create
GridFs データベースに新しいファイルを作成します。これは、着信ヘッダーの Exchange.FILE_NAME を名前として使用し、本文の内容を (InputStream として) コンテンツとして使用します。
// from("direct:create").to("mongodb-gridfs?database=tickets&operation=create"); Map<String, Object> headers = new HashMap<String, Object>(); headers.put(Exchange.FILE_NAME, "filename.txt"); InputStream stream = ... the data for the file ... template.requestBodyAndHeaders("direct:create", stream, headers);
229.6.5. remove
GridFS データベースからファイルを削除します。
// from("direct:remove").to("mongodb-gridfs?database=tickets&operation=remove"); Map<String, Object> headers = new HashMap<String, Object>(); headers.put(Exchange.FILE_NAME, "filename.txt"); template.requestBodyAndHeaders("direct:remove", "", headers);