使用Clojure环服务二进制内容

Mat*_*loy 12 webserver http clojure

我希望在Clojure Ring响应中提供PDF(或任何其他二进制文件).这有效

(defn serve-file [request]
  {:status 200
   :headers {"Content-Type" "application/pdf"}
   :body (FileInputStream. "file.pdf")})
Run Code Online (Sandbox Code Playgroud)

但我没有明确关闭FileInputStream.这会导致内存泄漏,还是由底层Web服务器(Jetty)关闭.如果没有,我该如何自己关闭?

Ank*_*kur 6

是的,ring确实关闭了body键中传递的InputStream对象.

查看:https://github.com/mmcgrana/ring/blob/master/ring-servlet/src/ring/util/servlet.clj#L111