Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 流文件上载到S3,同时使用ExpressJS限制文件大小_Node.js_Amazon Web Services_Express_Amazon S3 - Fatal编程技术网

Node.js 流文件上载到S3,同时使用ExpressJS限制文件大小

Node.js 流文件上载到S3,同时使用ExpressJS限制文件大小,node.js,amazon-web-services,express,amazon-s3,Node.js,Amazon Web Services,Express,Amazon S3,我想把用户的文件上传到S3。我有一个web客户端/NodeJS快速解决方案 到目前为止,我在研究中发现,使用多部分上传,我可以执行以下任一操作: 1.)如果直接使用管道启用流式传输,则 2.)如果需要控制大小,则必须禁用管道/流式传输,并且必须将文件写入磁盘或内存缓冲区以检查文件大小,然后将其传输到S3 有什么办法我能同时得到这两个吗 我正在研究以下中间产品: 至少可以使用busboy,设置各种请求范围的限制。因此,您可以为所有文件设置一个文件大小限制(或者在每个文件的基础上进行此操作,方

我想把用户的文件上传到S3。我有一个web客户端/NodeJS快速解决方案

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

1.)如果直接使用管道启用流式传输,则

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

有什么办法我能同时得到这两个吗

我正在研究以下中间产品:


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

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

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

模块?