228.6. GridFS 작업 - 생산자 끝점

228.6.1. count

컬렉션의 총 파일 수를 반환하고 Integer를 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);

228.6.2. listAll

탭으로 구분된 스트림에 모든 파일 이름과 해당 ID를 나열하는ECDHE를 반환합니다.

// from("direct:listAll").to("mongodb-gridfs?database=tickets&operation=listAll");
Reader result = template.requestBodyAndHeader("direct:listAll", "irrelevantBody");

filename1.txt   1252314321
filename2.txt   2897651254

 

228.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);

 

228.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);

228.6.5. 제거

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);