javascript - 通过 Express.js 中的 API 上传文件 : Notification after file upload

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

我们正在尝试从 Android 和 iOS 手机构建一个大文件(大小>30MB)上传,为此创建了一个用于文件上传的 Express.js API。

端点:用户/上传

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. 从 Express API 获取 Pre-Signed URL将文件上传到S3
  2. 从移动客户端将文件直接上传到 S3(这将显示状态为正在上传)
  3. 上传完成后,S3 将触发 SNS 推送通知,该通知将发送到移动设备
  4. 移动设备将读取推送通知并更改应用中的上传状态

以上流程完全异步且高度可扩展,减少了 Express API 的负载。

关于javascript - 通过 Express.js 中的 API 上传文件 : Notification after file upload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43535414/

相关文章:

javascript - 如何列出 React 项目中未使用的节点模块/依赖项?

android - 为什么我将 Razorpay 与 Flutter 结合使用会出现此错误 => Uncaught TypeError :window. getDeviceDetails is not a function and BAD_REQUEST_ERROR?

java - 发布图像无效的 MIME 类型

node.js - 尝试批量插入行时发生 Knexjs 错误 : Timeout acquiring a connection. 池可能已满。

javascript - 有没有办法在 Ace Editor 中隐藏行号?

javascript - 使用编译函数向元素添加指令

javascript - TSX 文件无法呈现导入的 React 组件

android - 为什么要通过 Application 类来管理生命周期?

javascript - 调平系统进度条

javascript - 尝试用于 Nodejs 的 async.js