Delegate stream creation to GridFS
This commit is contained in:
parent
b1cfb5490a
commit
1170f342dd
1 changed files with 22 additions and 1 deletions
|
|
@ -114,9 +114,30 @@
|
|||
(to-input-stream [^InputStream input]
|
||||
input))
|
||||
|
||||
(defprotocol GridFSInputFileFactory
|
||||
(^GridFSInputFile create-gridfs-file [input ^GridFS fs] "Creates a file entry"))
|
||||
|
||||
(extend byte-array-type
|
||||
GridFSInputFileFactory
|
||||
{:create-gridfs-file (fn [^bytes input ^GridFS fs]
|
||||
(.createFile fs input))})
|
||||
|
||||
(extend-protocol GridFSInputFileFactory
|
||||
String
|
||||
(create-gridfs-file [^String input ^GridFS fs]
|
||||
(.createFile fs (io/file input)))
|
||||
|
||||
File
|
||||
(create-gridfs-file [^File input ^GridFS fs]
|
||||
(.createFile fs input))
|
||||
|
||||
InputStream
|
||||
(create-gridfs-file [^InputStream input ^GridFS fs]
|
||||
(.createFile fs input)))
|
||||
|
||||
(defn ^GridFSInputFile make-input-file
|
||||
[^GridFS fs input]
|
||||
(.createFile fs (to-input-stream input) true))
|
||||
(create-gridfs-file input fs))
|
||||
|
||||
(defmacro store
|
||||
[^GridFSInputFile input & body]
|
||||
|
|
|
|||
Loading…
Reference in a new issue