【问题标题】:handling file uploads in Nodejs with AWS使用 AWS 在 Nodejs 中处理文件上传
【发布时间】:2017-06-12 03:06:45
【问题描述】:

我在 Node.js 中有一个服务器,并说我有一个 POST 请求,该请求将一个多部分文件上传到我的服务器,然后我将它上传到 AWS S3。

问题是,使用 multer,我必须先将文件保存到磁盘。

如果我将服务器部署到 EC2 上,那么文件上传将如何工作,因为它没有临时存储文件的目的地?

谢谢!

【问题讨论】:

  • 我让用户直接从客户端上传到s3(angular + ng-upload-s3)。
  • 为什么 EC2 实例上没有临时磁盘空间?
  • @MarkB,是的,我想通了。但问题是,如果文件是 5 GB,或者说极端情况下是 1 TB。那会发生什么?地狱里没有办法 EC2 会有那么多临时空间
  • @BasedTyrone 您绝对可以在 EC2 实例上拥有这么多临时空间,但这显然是浪费金钱。您愿意为 TB 的 S3 存储付费吗?您需要在某个时候限制文件上传大小。
  • @MarkB,那么为什么有人会使用 S3 呢?如果他们可以简单地将所有内容存储在 EC2 实例上?

标签: node.js amazon-web-services amazon-s3 amazon-ec2


【解决方案1】:

您可以将流与busboy 一起使用。我没有使用 AWS 节点 SDK 的经验,但总体思路如下:

req.busboy.on('file', function (fieldname, file, filename) {
     const params = { Bucket: 'bucket', Key: 'key', Body: file };
     s3.upload(params, (err, data) => {
         console.log(err, data);
     });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 2020-06-23
    • 1970-01-01
    相关资源
    最近更新 更多