【问题标题】:Stream File Upload To S3 While Limiting File Size Using ExpressJS使用 ExpressJS 限制文件大小的同时将流文件上传到 S3
【发布时间】:2014-09-24 01:31:47
【问题描述】:

我想将用户的文件上传到 S3。我有一个 Web 客户端/NodeJS Express 解决方案。

到目前为止,在我的研究中,我发现使用分段上传,我可以执行以下任一操作:

1.) 如果直接使用管道启用流式传输,则i cannot control the size of the file

2.) 如果需要控制大小,则必须禁用管道/流式传输,并且必须将文件写入磁盘或内存缓冲区以检查文件大小,然后将其传输到 S3。

有什么方法可以同时获得这两个吗?

我正在看以下中间件:

busboy

multiparty

multer

formidable

【问题讨论】:

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


【解决方案1】:

至少使用busboy,您可以设置各种请求范围的限制。因此,您可以为所有文件设置文件大小限制(或者通过自己计算并在自定义文件大小限制上排出任何额外数据,以每个文件为基础),然后直接流式传输到 S3(使用 Amazon 的多部分 API) .如果busboy 通知您已达到文件大小限制,那么您只需删除刚刚流式传输到 S3 的部分文件。

否则另一种选择就像你说的,先保存到磁盘,然后上传到 S3。

两者各有优缺点,但由于multipart 流的性质,对于这个特定问题确实没有其他解决方案。

【讨论】:

    猜你喜欢
    • 2011-12-26
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 2012-11-03
    • 2016-03-14
    • 2016-04-14
    • 2011-01-29
    相关资源
    最近更新 更多