通过Express.js中的API上传文件:文件上传后通知

时间:2017-04-21 06:27:56

标签: javascript android node.js amazon-web-services express

我们正在尝试从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'
}

因为上传是异步的。那么如何在上传完成时通知客户端?

1 个答案:

答案 0 :(得分:1)

对于特定用例,我建议使用以下流程

  1. 从Express API获取Pre-Signed URL到上传文件到S3
  2. 从Mobile Client直接将文件上传到S3(将显示正在上传的状态)
  3. 上传完成后,S3将触发SNS推送通知,该通知将发送到移动设备
  4. 移动设备将读取推送通知并更改应用程序中的上传状态
  5. 以上流程完全异步且具有高度可扩展性,可降低Express API的负载。