当上传大于10mb的文件时,我目前遇到问题。我正在将它们上传到s3存储桶。
我试图用bodyparser在内置于中间件中的船长中设置限制。
order: [
'cookieParser',
'session',
'myRequestLogger',
'bodyParser',
'compress',
'poweredBy',
'router',
'www',
'favicon',
],
myRequestLogger: function (req, res, next) {
sails.log("Requested :: ", req.method, req.url);
return next();
},
/***************************************************************************
* *
* The body parser that will handle incoming multipart HTTP requests. *
* *
* https://sailsjs.com/config/http#?customizing-the-body-parser *
* *
***************************************************************************/
bodyParser: (function _configureBodyParser() {
var skipper = require('skipper');
var middlewareFn = skipper({
strict: true,
limit: '50mb'
});
return middlewareFn;
})(),
这似乎根本没有使用所设置的limit属性。
任何有关此的建议都会有所帮助。
答案 0 :(得分:0)
我不确定您在哪里找到了Skipper的limit
选项,但是在skipper-s3和skipper之间记录了限制上传文件的大小。
在您的操作/控制器中收到上传内容时,指定maxBytes
选项应该可以。
如果您要将文件上传到多个动作/控制器,则将最大文件大小保留在sails.config.custom.maxUploadFilesize
之类的位置,因此可以在单个位置进行配置-找不到任何全局Skipper选项但我可能会错过它。
const MAX_UPLOAD_BYTES = 10 * 1024 * 1024;
req.file('avatar')
.upload({
// Required
adapter: require('skipper-s3'),
key: 'thekyehthethaeiaghadkthtekey',
secret: 'AB2g1939eaGAdesoccertournament',
bucket: 'my_stuff',
maxBytes: MAX_UPLOAD_BYTES
}, function whenDone(err, uploadedFiles) {
if (err) {
return res.serverError(err);
}
return res.ok({
files: uploadedFiles,
textParams: req.params.all()
});
});