我在s3上有一个大文件,我希望在下载时解码和解析.我碰巧使用了clojure Amazonica库,但任何库都可以.
我可以轻松获得一个流:
(def stream (-> (get-object "some-s3-bucket" "some-object-key") :input-stream))
; returns: #<S3ObjectInputStream com.amazonaws.services.s3.model.S3ObjectInputStream
Run Code Online (Sandbox Code Playgroud)
但是如何阅读流?我可以一次读一行(解压缩的内容是JSON行)吗?
(如果我的问题有任何歧义,我只关心流的读取,而不是gzip解码的任何部分)
如果我在Koa中作出承诺,他们可能会被拒绝:
function fetch = (){
var deferred = q.defer();
//Some async action which calls deferred.reject();
return deferred.promise;
}
this.body = yield fetch(); //bad, not going to work
Run Code Online (Sandbox Code Playgroud)
Koa中是否存在一个错误处理模式来处理这个问题,除了明确地展开promise then和明确处理错误?