使用响应式编程 RXJS 和 AWS SDK for javascript

Ste*_*n.Y 2 javascript amazon-s3 amazon-web-services rxjs aws-sdk

我使用 aws sdk for javascript 将对象上传到 S3 存储桶,但也使用反应式编程 rxjs 创建流。那么,将 S3 作为流上传然后作为流触发 API 调用的最佳方法是什么?

var stream = Rx.Observable.fromPromise(s3.putObject(params).promise());
stream.subscribe(data=>{},err=>{})
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,它有效,但问题是即使文件成功上传到 S3 存储桶后,“数据”也是一个空对象,因此我无法执行 API 流,因为我需要一些文件信息。

或者我应该使用 Rx.Observable.fromNodeCallback(s3.upload)?请指教,非常感谢。

Ole*_*luk 6

您可以从回调创建 Observable 流,而无需创建中间承诺。如果您想获取文件详细信息,请尝试使用aws-sdk 的上传方法

const upload = s3.upload(config);
const upload$ = Rx.Observable.fromNodeCallback(upload.send, upload)();
upload$.subscribe(v => console.log(v)); // will print file details
Run Code Online (Sandbox Code Playgroud)