diff --git a/src/monger/gridfs.clj b/src/monger/gridfs.clj index 991ae44..bfb1d73 100644 --- a/src/monger/gridfs.clj +++ b/src/monger/gridfs.clj @@ -4,7 +4,8 @@ [clojure.java.io :as io]) (:use [monger.conversion]) (:import [com.mongodb DBObject] - [com.mongodb.gridfs GridFS GridFSInputFile])) + [com.mongodb.gridfs GridFS GridFSInputFile] + [java.io InputStream])) ;; ;; Implementation @@ -55,7 +56,7 @@ (extend-protocol GridFSInputFileFactory String (make-input-file [^String input] - (.createFile ^GridFS monger.core/*mongodb-gridfs* (.getBytes input)))) + (.createFile ^GridFS monger.core/*mongodb-gridfs* ^InputStream (io/make-input-stream input { :encoding "UTF-8" })))) diff --git a/test/monger/test/gridfs.clj b/test/monger/test/gridfs.clj index cda1f0a..668ab33 100644 --- a/test/monger/test/gridfs.clj +++ b/test/monger/test/gridfs.clj @@ -24,8 +24,8 @@ -(deftest test-storing-strings-to-gridfs - (let [input "A string"] +(deftest test-storing-files-to-gridfs-using-relative-fs-paths + (let [input "./test/resources/mongo/js/mapfun1.js"] (is (= 0 (count (gridfs/all-files)))) (gridfs/store (gridfs/make-input-file input) (.setFilename "monger.test.gridfs.file1") @@ -37,6 +37,6 @@ (let [input (.getBytes "A string")] (is (= 0 (count (gridfs/all-files)))) (store (make-input-file input) - (.setFilename "monger.test.gridfs.file1") + (.setFilename "monger.test.gridfs.file2") (.setContentType "application/octet-stream")) (is (= 1 (count (gridfs/all-files))))))