Clojurescript:从浏览器调用S3

时间:2019-03-09 16:44:22

标签: amazon-s3 clojurescript

我正在尝试使用AWS开发工具包访问我的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 "..."}})

然后我使用CIDER在REPL中运行此程序(实际上我正在使用C-M-xC-c C-e在CIDER中评估所有这些;还没有将其连接到一起):

(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项目内部,尽管我在该项目的其余部分所做的很少。
  • 我以前至少可以get CORS errors for .listBuckets,但是现在这个电话也完全没有做任何事情-我不记得要更改任何有意义的内容

1 个答案:

答案 0 :(得分:0)

这可能会为您指明正确的方向:[object Object]

您可以尝试在该响应上使用(.log js / console ...)吗?