大佬教程收集整理的这篇文章主要介绍了node.js – 使用aws-sdk和Node / Express将文件上传到S3,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
HTML
<html> <body> <form method="POST" action="/upload" enctype="multipart/form-data"> <div class="field"> <label for="image">Image Upload</label> <input type="file" name="image" id="image"> </div> <input type="submit" class="btn" value="Save"> </form> </body> </html>
Port 5000是我的Node.js服务器端口.
@H_261_9@module.exports = function(app,models) { var fs = require('fs'); var AWS = require('aws-sdk'); var accessKeyId = process.env.AWS_ACCESS_KEY || "xxxxxx"; var secretAccessKey = process.env.AWS_SECRET_KEY || "+xxxxxx+B+xxxxxxx"; AWs.config.update({ accessKeyId: accessKeyId,secretAccessKey: secretAccessKey }); var s3 = new AWs.S3(); app.post('/upload',function(req,res){ var params = { Bucket: 'makersquest',Key: 'mykey1234.png',Body: "Hello" }; s3.putObject(params,function (perr,pres) { if (perr) { console.log("Error uploading data: ",perr); } else { console.log("successfully uploaded data to myBucket/myKey"); } }); }); }
现在我想发布我发帖的文件,这是出现问题的地方.
@H_261_9@module.exports = function(app,res){ var path = req.files.image.path; fs.readFile(path,function(err,file_buffer){ var params = { Bucket: 'makersquest',Body: file_buffer }; s3.putObject(params,pres) { if (perr) { console.log("Error uploading data: ",perr); } else { console.log("successfully uploaded data to myBucket/myKey"); } }); }); }); }
我得到的错误是:
事实上文件完全是空的.
我假设我错过了很明显的东西,但我似乎找不到.
var multer = require('multer'); var AWS = require('aws-sdk'); var accessKeyId = process.env.AWS_ACCESS_KEY || "xxxxxx"; var secretAccessKey = process.env.AWS_SECRET_KEY || "+xxxxxx+B+xxxxxxx"; AWs.config.update({ accessKeyId: accessKeyId,secretAccessKey: secretAccessKey }); var s3 = new AWs.S3(); app.use(multer({ // https://github.com/expressjs/multer dest: './public/uploads/',limits : { fileSize:100000 },rename: function (fieldname,fileName) { return filename.replace(/\W+/g,'-').toLowerCase(); },onFileUploadData: function (file,data,req,res) { // file : { fieldname,originalname,name,encoding,mimetype,path,extension,size,truncated,buffer } var params = { Bucket: 'makersquest',Key: file.name,Body: data }; s3.putObject(params,pres) { if (perr) { console.log("Error uploading data: ",perr); } else { console.log("successfully uploaded data to myBucket/myKey"); } }); } })); app.post('/upload',res){ if(req.files.image !== undefined){ // `image` is the field name from your form res.redirect("/uploads"); // success }else{ res.send("error,no file chosen"); } });
以上是大佬教程为你收集整理的node.js – 使用aws-sdk和Node / Express将文件上传到S3全部内容,希望文章能够帮你解决node.js – 使用aws-sdk和Node / Express将文件上传到S3所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。