Наконец-то я смог скачать файл. Вопрос в том, где я передаю параметры в вызов конфигурации. Мы должны конвертировать Clojure в JS, используя clj-> js. Обновленный метод будет следующим:
(defn download-image-android [app-db url image-id]
(p/promise (fn [resolve reject]
(let [fs (oget fetch-blob "fs")
android-dir-path (str (oget (oget fs "dirs") "DownloadDir") "/" image-id ".jpg")
params (parse-params url)
fetch-config (ocall fetch-blob "config" (clj->js {
:fileCache true
:addAndroidDownloads {:useDownloadManager true :path android-dir-path :notification true}}))
fetch-file (ocall fetch-config "fetch" "GET" url (clj->js {:Signature (:X-Amz-Signature params)
:Cache-Control "no-store"}))]
(ocall fetch-file "then" (fn [res]
(show-alert "Success" "Image has been saved to the phone successfully!")
(resolve true)))
(ocall fetch-file "catch" (fn [res]
(show-alert "Error" "Image cannot be downloaded. Please try again!")
(.log js/console "Download file failed" res)
(resolve false)))
#js{:timeout 30000
:distanceFilter 1
:maximumAge 1000
:enableHighAccuracy false}))))