sails.js - 如何在 SailsJS v1.0 中设置船长主体限制?
问题描述
我目前在上传大于 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;
})(),
这似乎根本没有使用正在设置的限制属性。
对此的任何建议都会有所帮助。
解决方案
我不完全确定您在哪里找到了Skipper 的选项,但是在skipper-s3和skipperlimit
之间记录了限制上传的文件大小。
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()
});
});
推荐阅读
- symfony - 定义“nelmio_cors”不支持配置键“defaults”
- c# - WPF 组合框似乎导致 InvalidCastException
- mysql - SQL日期间隔不适用于AND子句
- c# - 如果 int 值等于 x 替换为字符串
- android - Putting ImageView in front of other elements < 21API
- reactjs - How to correctly validate an masked-input using material-ui, formik, yup, and react-input-mask?
- java - 编译错误将实例方法声明为静态上下文(Java 6)
- jenkins - Jenkins: C:Program No such file or directory
- python-3.x - output.write(bytearray(image[y][x])) TypeError: write() 参数必须是 str,而不是 bytearray
- apache-spark - Apache Spark 无法反序列化集群上的“TopicPartition”