What i need just to get file from url and store it to db.
So we need to use buffer, stream and stuff to get file. I found this code but i guess there is a way to get things simplier.
(defn fetch-data [url]
(let [con (-> url java.net.URL. .openConnection)
fields (reduce (fn [h v]
(assoc h (.getKey v) (into [] (.getValue v))))
{} (.getHeaderFields con))
size (first (fields "Content-Length"))
in (java.io.BufferedInputStream. (.getInputStream con))
out (java.io.BufferedOutputStream.
(java.io.FileOutputStream. "out.file")) ; Here is our file
buffer (make-array Byte/TYPE 1024)]
; Not sure about that loop it's just prints size to repl if we don't need that we can omit that part i guess
(loop [g (.read in buffer)
r 0]
(if-not (= g -1)
(do
(println r "/" size)
(.write out buffer 0 g)
(recur (.read in buffer) (+ r g)))))
(.close in)
(.close out)
(.disconnect con)))