cljsrn

https://github.com/drapanjanas/re-natal | https://github.com/drapanjanas/re-natal/wiki/FAQ | https://github.com/condense/mercury-app/wiki | https://github.com/seantempesta/expo-cljs-template/ https://www.npmjs.com/package/create-expo-cljs-app
zendevil 2021-01-23T12:56:04.005Z

I have the following re-frame event handlers with which I’m trying to upload a video to the server:

(reg-event-fx
 :upload-shot-video-server
 (fn [coeffects [_ blob]]
   (let [body (js/FormData.)]
     (.append body "video" blob)
     {:http-xhrio {:method :post
                   :uri (str "<http://d18a6571c2e5.ngrok.io>" "/api/upload-shot-video")
                   :body body
                   :on-success [:upload-success]
                   :on-failure [:upload-error]
                   :response-format (edn/edn-response-format)}}))
 )

(reg-event-fx
 :upload-shot-video
 (fn [coeffects _]
   (prn "uploading video")
   (let [response (js/fetch (-&gt; coeffects :db :shot-video-uri))]
     (try
       (go
         (let [blob (&lt;p! (. (&lt;p! response) blob))]
           (js/console.log "blob is " blob)
           (js/console.log "size of blob is " (.-size blob))
           (dispatch [:upload-shot-video-server blob])))
       (catch js/Error e (js/console.log "Error is " e)))
     {})))
I have a handler on the server to take the input stream and save it as a file:
(defn upload-shot-video [req]
  (prn "uploading video")
  (prn "video is! " (-&gt; req :params))
  (prn "video is " (-&gt; req :body))
  (<http://clojure.java.io/copy|clojure.java.io/copy> (-&gt; req :body) (<http://clojure.java.io/file|clojure.java.io/file> "./resources/public/video.mov"))


  (let [filename (str (rand-str 100) ".mov")]
    (s3/put-object
     :bucket-name "humboi-videos"
     :key filename
     :file "./resources/public/video.mov"
     :access-control-list {:grant-permission ["AllUsers" "Read"]})
    (db/add-video {:name (-&gt; req :params :name)
                   :uri (str "<https://humboi-videos.s3-us-west-1.amazonaws.com/>" filename)}))
  (r/response {:res "okay!"}))

zendevil 2021-01-23T12:56:14.005300Z

However, the video that’s being saved as a file is 0 bytes large, even though the video blob is a non-zero sized video

zendevil 2021-01-23T12:56:19.005500Z

How to fix this error?