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