没有存储在S3存储桶中的图像
我使用s3 multer模块将用户上传的图像文件直接上传到我的存储桶中。 该应用程序显示,更新成功,但我看不到我的文件桶。 上传文件后的页面以上传成功响应。 下面是我使用的app.js文件和index.html,这是从github回购分支人说它的工作,但我的工作,请告诉我错误? 我在我的本地主机上运行这个。
码:
aws = require('aws-sdk'), var express = require('express'), bodyParser = require('body-parser'), multer = require('multer'), s3 = require('multer-s3'); aws.config.update({ secretAccessKey:'XXXXX', accessKeyId:'YYYYY', region: 'us-west-2'}); var app = express(); app.use(bodyParser.json()); var upload = multer({ storage: s3({ dirname: '/profilepics', bucket: 'XXXX', secretAccessKey:'YYYY', accessKeyId:'TYYYYYY', region: 'us-west-2', filename: function (req, file, cb) { cb(null, "1234"); //use Date.now() for unique file keys } }) }); //open in browser to see upload form app.get('/', function (req, res) { res.sendFile(__dirname + '/index.html'); }); //use by upload form app.post('/upload', upload.array('upl'), function (req, res, next) { res.send("Uploaded!"); }); app.listen(4000, function () { console.log('Example app listening on port 3000!'); });
index.html的:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> Hey! Lets try uploading to s3 directly :) <form method="post" enctype="multipart/form-data" action="/upload"> <p> <input type="text" name="title" placeholder="optional title"/> </p> <p> <input type="file" name="upl"/> </p> <p> <input type="submit"/> </p> </form> </body> </html>
我认为新版本做了一些改变。 对于最新版本,你应该做的是:
var upload = multer({ storage: multerS3({ s3: s3, bucket: 'XXXX', dirname: '/profilepics', secretAccessKey:'YYYY', accessKeyId:'TYYYYYY', region: 'us-west-2', key: function (req, file, cb) { console.log(file); cb(null, file.originalname); //use Date.now() for unique file keys } }) });
而当你想访问上传数组:
app.post('/upload', upload.array('upl',1), function (req, res, next)
我相信你的原始代码是从这里:
Multer S3上传示例
- 如何在NodeJS上使用S3 SSE C(服务器端encryption与客户端提供的密钥)
- 如何使用node.js,Express和knox从浏览器上传文件到Amazon S3?
- AWS Step / Lambda – 在运行之间存储variables
- aws-sdk node.js s3 putObject从请求体
- Amazon S3 POST API以及使用NodeJS签署策略
- 如何将缓冲区保存到S3 Bucket中
- 适用于node.js的AWS sdk
- 我应该如何批量上传到s3,并通过最终callback从nodeJS webserver插入到MongoDB?
- 如何使用KMS将S3encryption到nodejs中?