nodejs将上传的文件直接传输到S3,而不需要等待两个时间
您好,我正在开发REST API的移动应用程序,其中用户上传图像到应用程序服务器,然后服务器上传图像到亚马逊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秒可以减less一半,减less到12个左右。 如果Nodejs足够聪明,可以在最后一位到达后开始上传到S3,但是在用户到达第一位之后 – 不要等待所有file upload,而是开始stream式传输。
这可能吗?
您应该向用户发送预先签名的S3 URL,以便用户可以直接上传到S3,而不是通过您的节点服务器。
看到这里: http : //docs.aws.amazon.com/AmazonS3/latest/dev/PresignedUrlUploadObject.html
我不知道为什么你需要首先上传你的文件到EC2然后到S3,当你的API可以直接上传文件到S3。
此外,node.js足够聪明,可以让您在抵达时开始处理数据(例如,在busboy中查看on('file')
事件)。
在S3中,您可以使用托pipe上传器使用可configuration的并发量上传未知大小的stream,以尽可能地执行分段上传。
托pipe的上传器允许轻松高效地上传缓冲区,Blob或stream,使用可configuration的并发量在可能的情况下执行分段上传。 由于使用了分段上传,该抽象还可以上传未知大小的stream。
- Node.js上传到Amazon S3,但文件损坏
- Heroku中的临时文件会发生什么(节点应用程序)
- 只允许服务器发布到AWS S3和不客户端应用程序 – 服务器代码和S3configuration
- amazon s3 deleteObjects nodejs – 无法让它工作
- 如何从Node.js中的S3 getObject得到响应?
- Amazon S3 Node.js SDK deleteObjects
- 在Meteor中正确启用filepicker.io的安全性
- 通过AWS SDK创build签名的S3和Cloudfront URL
- aws-sdk上传到S3在KOA中工作,但在通过Mocha调用时停止工作