【发布时间】:2017-04-21 06:27:56
【问题描述】:
我们正在尝试构建一个从 Android 和 iOS 手机上传的大文件(大小>30MB),为此创建了一个 Express.js API 用于文件上传。
端点:user/upload
uploadFile:function(req,res){
//upload files to AWS s3 asychrnous
s3.upload(params,options,function(err, data) {
//when upload complete
//need a help on this part
if(data){
//Send a notification to client
}
});
res.json({
status:true,
'message':'Upload ongoing'
});
}
当用户请求 API (user/upload) 时,它会立即给出以下响应:
{
status:true,
'message':'Upload ongoing'
}
因为上传是异步的。那么如何在上传完成时通知客户端呢?
【问题讨论】:
-
我猜你的
res.json({status:true,'message':'Upload ongoing'});代码块应该在s3.upload函数中的if(data){....}之下。 -
不,我不能这样做,因为文件上传需要太多时间,这就是我将其设为异步的原因
-
在这种情况下,您可以在屏幕上显示一些进度条,让用户知道上传正在进行对吗?
-
但是我怎样才能跟踪客户的进度??
标签: javascript android node.js amazon-web-services express