Я пытаюсь подражать этому локоны просьбы об422 Unprocessable Entity ответ при проводке загрузки файла в Clojure
curl "https://{subdomain}.zendesk.com/api/v2/uploads.json?filename=myfile.dat&token={optional_token}" \
-v -u {email_address}:{password} \
-H "Content-Type: application/binary" \
--data-binary @file.dat -X POST
со следующим кодом
(POST "/uploads" request
(let [filename (get-in request [:params "file" :filename])
file (get-in request [:params "file" :tempfile])
url (str "https://REDACTED.zendesk.com/api/v2/uploads.json?filename=" filename)]
(clj-http.client/post url {:headers {"Content-Type" “application/binary”}
:multipart-params [{:name "file"
:content file
:mime-type "application/binary”}]})
, но я получаю ответ марки «422 Unprocessable Entity» из Зендеска. Файл/tempfile поступает как #object[java.io.File 0x3768306f "/var/folders/l3/7by17gp51sx2gb2ggykwl9zc0000gn/T/ring-multipart-6501654841068837352.tmp"]
по запросу.
Я играл с clojure.java.io принуждениями (как clojure.java.io/output-stream
), как упомянуто в Saving an image form clj-http request to file, но это не помогло.
(PS. Я абсолютно уверен, мне не нужно авторизовать, потому что я могу получить прямую загрузку на Zendesk работать через Почтальон.)