Http 使用Clojure环提供二进制内容

Http 使用Clojure环提供二进制内容,http,clojure,webserver,Http,Clojure,Webserver,我希望在Clojure Ring响应中提供PDF(或任何其他二进制文件)。这很有效 (defn serve-file [request] {:status 200 :headers {"Content-Type" "application/pdf"} :body (FileInputStream. "file.pdf")}) 但我没有明确关闭FileInputStream。这会导致内存泄漏,还是被底层web服务器(Jetty)关闭。如果没有,我如何自己关闭它?是的,ring会关

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

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

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

是的,ring会关闭在body键中传递的InputStream对象


签出:

另一种方法是简单地使用
ring.middleware.file
file info
。看见