Как отправить обратно файл в виде звонка-ответа, используя monger? - PullRequest
1 голос
/ 07 марта 2020

Использование API-интерфейса поиска по идентификатору, например (prn (gfs/find-by-id fs id)), дает:

#object[com.mongodb.gridfs.GridFSDBFile 0x5742d15e "{ \"metadata\" : { \"format\" :  null } , \"filename\" : \"blob\" , \"aliases\" :  null  , \"chunkSize\" : 261120 , \"uploadDate\" : { \"$date\" : \"2020-03-05T23:36:50.249Z\"} , \"length\" : 55602 , \"_id\" : { \"$oid\" : \"5e618d125815506bb3c72cfe\"} , \"contentType\" :  null  , \"md5\" : \"48284ab9cc81e2d079af703f5aed3267\"}"]

Вот как я отправляю этот файл клиенту с включенным промежуточным ПО wrap-edn:

  {:status (or status 200)
   :headers {"Content-Type" "application/edn"}
   :body (pr-str (gfs/make-input-file fs (gfs/find-by-id fs id)))}

Однако это дает клиенту следующее:

Invalid symbol: java.lang.IllegalArgumentException:.  Format should have been EDN", :original-text "java.lang.IllegalArgumentException: No implementation of method: :to-input-stream of protocol: #'monger.gridfs/InputStreamFactory found for class: com.mongodb.gridfs.GridFSDBFile\n\tat 
...