node.js - 如何使用sails.js 中的新控制器操作格式上传文件
问题描述
有人知道我如何使用sails.js的(输入,存在)格式将文件上传到控制器操作,这是我的尝试:
module.exports = {
friendlyName: 'Upload file recording',
description: 'Upload a recording to AWS',
inputs: {
name: {
required: true,
type: 'string'
},
mimeType: {
required: true,
type: 'string'
},
recording: {
type: 'ref'
}
},
exits: {
noRecordings: {
responseType: 'no recordings',
description: `You don't have any recording for this event`,
},
serverError: {
responseType: 'server error',
description: `Failed to upload the file`,
}
},
fn: async function (inputs, exits) {
// fixme
inputs.file('recording').upload({
adapter: require('skipper-s3'),
key: process.env.AWS_S3_KEY,
secret: process.env.AWS_S3_SECRET,
bucket: process.env.AWS_S3_BUCKETNAME
}, function (err, filesUploaded) {
if (err) return exits.serverError(err);
return exits.success({
files: filesUploaded,
textParams: req.allParams()
});
});
}
};
上传文件,因为 inputs.file 不是函数。所以基本上问题是,我怎样才能在这里传递一个文件。
任何帮助表示赞赏。
解决方案
所以终于找到了解决方案,我只需要使用:
files: ['recording'],
此外:
inputs:
recording: {
example: '===',
required: true
},
然后在动作函数内部:
inputs.recording.upload({
adapter: require('skipper-s3'),
key: process.env.AWS_S3_KEY,
secret: process.env.AWS_S3_SECRET,
bucket: process.env.AWS_S3_BUCKETNAME
}, function (err, filesUploaded) {
if (err) return exits.serverError(err);
console.log(filesUploaded);
return exits.success(newFileRecording);
});
推荐阅读
- android - 添加 exoplayer 和打开 java 8 的问题
- c# - C# Sqltimeout 命令不知道程序端还是 sql server 端
- python - 安装不包含测试代码的包
- xml - 当 XSD 和 XML 都被验证时,QXmlSchema 和 QXmlSchemaValidator 给出错误
- php - 使用 Guzzle PHP 循环发送请求多次
- c# - Html.ValidationSummary 总是显示
- javascript - 如何通过javascript将视频添加到html页面
- javascript - Select2 未使用 Jquery 3.3.1 上的 jquery-validate 插件进行验证
- amazon-web-services - 是否有通过 CLI 启用 aws 守卫职责的脚本?
- java - 如何在不读取 Java 中的整个 JSON 文件的情况下仅获取特定键的值?