Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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
Javascript nodejs将上传的文件直接传输到S3,无需双重等待时间_Javascript_Node.js_Amazon Web Services_File Upload_Amazon S3 - Fatal编程技术网

Javascript nodejs将上传的文件直接传输到S3,无需双重等待时间

Javascript nodejs将上传的文件直接传输到S3,无需双重等待时间,javascript,node.js,amazon-web-services,file-upload,amazon-s3,Javascript,Node.js,Amazon Web Services,File Upload,Amazon S3,您好,我正在为移动应用程序开发RESTAPI,其中用户将图像上传到app server,然后服务器将图像上传到amazon s3并更新数据库 问题是: 1.User wants to upload 10MB file It takes 10 seconds to travel from user's device to my server 2.After server has received last bit, it starts uploading to S3. Another 10

您好,我正在为移动应用程序开发RESTAPI,其中用户将图像上传到app server,然后服务器将图像上传到amazon s3并更新数据库

问题是:

1.User wants to upload 10MB file    It takes 10 seconds to travel from user's device to my server
2.After server has received last bit, it starts uploading to S3. Another 10 seconds.
3.After 20 seconds in total, user is presented with hyperlink.
我认为这20秒可以减少一半,到12秒左右。如果Nodejs足够聪明,可以在用户到达第一位之后,而不是在最后一位到达之后,开始上传到S3,那么不要等待所有文件被上传,而是动态地开始流媒体


这可能吗?

您应该向用户发送预签名的S3 URL,这样用户就可以直接上传到S3,而不必通过您的节点服务器


请参见此处:

我不确定为什么您需要先将文件上载到EC2,然后再上载到S3,而您的API可以将文件直接上载到S3

此外,node.js足够智能,允许您在数据到达时开始处理数据,例如,请参阅中的“文件”事件

在S3中,您可以使用以可配置的并发量上传大小未知的流,以便在可能的情况下执行多部分上传

托管上传器允许轻松高效地上传 缓冲区、blob或流,使用可配置的并发量 尽可能执行多部分上载。这个抽象也 允许上载由于使用多部分而大小未知的流 上传