大佬教程收集整理的这篇文章主要介绍了使用formidable和(knox或aws-sdk)将文件流上传到Node.js上的S3,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的问题是:如何使用aws-sdk(或knoX)使用这些库的最新功能处理流来正确使用强大的功能?
> How to receive an uploaded file using node.js formidable library and save it to Amazon S3 using knox?
> node application stream file upload directly to amazon s3
> Accessing the raw file stream from a node-formidable file upload(以及关于覆盖form.onPart()的非常有用的接受答案)
但是,我认为答案有点过时和/或偏离主题(即CORS支持,我现在不希望出于各种原因使用)和/或最重要的是,没有提及来自的最新功能aws-sdk(参见:https://github.com/aws/aws-sdk-js/issues/13#issuecomment-16085442)或knox(特别是putStream()或其readableStream.pipe(req)变体,both explained in the doc).
经过几个小时的挣扎,我得出结论,我需要一些帮助(免责声明:我是一个流媒体的新手).
HTML表单:
<form action="/uploadPicture" method="post" enctype="multipart/form-data"> <input name="picture" type="file" accept="image/*"> <input type="submit"> </form>
Express bodyParser中间件以这种方式配置:
app.use(express.bodyParser({defer: truE}))
POST请求处理程序:
uploadPicture = (req,res,next) -> form = new formidable.IncomingForm() form.parse(req) form.onPart = (part) -> if not part.filename # Let formidable handle all non-file parts (fields) form.handlePart(part) else handlePart(part,form.bytesExpected) handlePart = (part,fileSizE) -> # aws-sdk version params = Bucket: "mybucket" Key: part.filename ContentLength: fileSize Body: part # passing stream object as body parameter awsS3client.putObject(params,(err,data) -> if err console.log err else console.log data )
但是,我收到以下错误:
以这种方式定制的knox版本的handlePart()函数也惨遭失败:
handlePart = (part,fileSizE) -> headers = "Content-Length": fileSize "Content-Type": part.mime knoxS3client.putStream(part,part.filename,headers,res) -> if err console.log err else console.log res )
我还得到一个带有400 statusCode的大型res对象.
在两种情况下,区域都配置为eu-West-1.
补充笔记:
实际上,form.bytesExpected指的是整个表单的大小,而不是单个文件的大小.
因此,在上传到S3之前,数据必须首先点击服务器上的内存或磁盘.
以上是大佬教程为你收集整理的使用formidable和(knox或aws-sdk)将文件流上传到Node.js上的S3全部内容,希望文章能够帮你解决使用formidable和(knox或aws-sdk)将文件流上传到Node.js上的S3所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。