Clojurescript: вызов S3 из браузера - PullRequest
1 голос
/ 09 марта 2019

Я пытаюсь использовать AWS SDK для доступа к моей корзине S3 и не могу понять, что я делаю неправильно.

Мой файл проекта Leiningen содержит зависимость от необходимого пакета CLJSJS:

[cljsjs/aws-sdk-js "2.94.0-0"]

Затем мне требуется пакет в моем пространстве имен:

(ns my-ns.s3
  (:require [cljsjs.aws-sdk-js]))

Я устанавливаю учетные данные:

(js/AWS.config.update #js{:credentials {:accessKeyId "..."
                                        :secretAccessKey "..."}})

Затем я запускаю его в REPL с помощью CIDER (Iя на самом деле оцениваю все это в CIDER, используя либо C-M-x, либо C-c C-e; еще не связал это ни с чем):

(let [client (new js/AWS.S3)]
  (.listObjects client
                #js{"Bucket" "my-bucket"}
                (fn [err resp]
                  (if err
                    (js/console.error "so sad"
                                      (js/JSON.stringify err))
                    (js/console.log "so happy" resp)))))

=> #object[Request [object Object]]

Все, что я получаю, это ссылка на #object (и яне знаю что с этим делать).На консоль ничего не регистрируется, и сетевой запрос не отправляется.

Есть ли какие-либо указатели на то, что я здесь делаю неправильно, или документы, которые мне, возможно, понадобится просмотреть?

Подробностидля краткости опущено:

  • Я довольно рано изучаю CLJS, изучаю JS в течение шести месяцев на работе и проработал CLJ на работе в течение последних нескольких лет, а Java - несколько лет спустя.что
  • Приведенный выше код находится внутри проекта re-frame, хотя с остальным проектом я мало что сделал
  • . Ранее я мог по крайней мере получить ошибки CORS.для .listBuckets, но теперь этот вызов также ничего не делает - я не припоминаю, чтобы что-либо значимое изменилось

1 Ответ

0 голосов
/ 10 марта 2019

Это может указать вам правильное направление: [объект объекта] .

Можете ли вы попробовать использовать (.log js / console ...) для этого ответа?

...