mirror of
https://github.com/plankanban/planka.git
synced 2025-07-19 21:29:43 +02:00
42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
|
const util = require('util');
|
||
|
const { v4: uuid } = require('uuid');
|
||
|
|
||
|
async function doUpload(paramName, req, options) {
|
||
|
const uploadOptions = {
|
||
|
...options,
|
||
|
dirname: options.dirname || sails.config.custom.fileUploadTmpDir,
|
||
|
};
|
||
|
const upload = util.promisify((opts, callback) => {
|
||
|
return req.file(paramName).upload(opts, (error, files) => callback(error, files));
|
||
|
});
|
||
|
return upload(uploadOptions);
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
friendlyName: 'Receive uploaded file from request',
|
||
|
description:
|
||
|
"Store a file uploaded from a MIME-multipart request part. The request part name must be 'file'; the resulting file will have a unique UUID-based name with the same extension.",
|
||
|
inputs: {
|
||
|
paramName: {
|
||
|
type: 'string',
|
||
|
required: true,
|
||
|
description: 'The MIME multi-part parameter containing the file to receive.',
|
||
|
},
|
||
|
req: {
|
||
|
type: 'ref',
|
||
|
required: true,
|
||
|
description: 'The request to receive the file from.',
|
||
|
},
|
||
|
},
|
||
|
|
||
|
fn: async function modFn(inputs, exits) {
|
||
|
exits.success(
|
||
|
await doUpload(inputs.paramName, inputs.req, {
|
||
|
saveAs: uuid(),
|
||
|
dirname: sails.config.custom.fileUploadTmpDir,
|
||
|
maxBytes: null,
|
||
|
}),
|
||
|
);
|
||
|
},
|
||
|
};
|