33 lines
1017 B
JavaScript
Raw Normal View History

'use strict';
const range = require('koa-range');
const koaStatic = require('koa-static');
/**
2021-09-29 12:25:06 +02:00
* Programmatic upload middleware. We do not want to expose it in the plugin
* @param {{ strapi: import('@strapi/strapi').Strapi }}
*/
module.exports = ({ strapi }) => {
strapi.server.app.on('error', err => {
if (err.code === 'EPIPE') {
// when serving audio or video the browsers sometimes close the connection to go to range requests instead.
// This causes koa to emit a write EPIPE error. We can ignore it.
// Right now this ignores it globally and we cannot do much more because it is how koa handles it.
return;
}
strapi.server.app.onerror(err);
});
const localServerConfig = strapi.config.get('plugin.upload.providerOptions.localeServer', {});
strapi.server.routes([
{
method: 'GET',
path: '/uploads/(.*)',
handler: [range, koaStatic(strapi.dirs.public, { defer: true, ...localServerConfig })],
config: { auth: false },
},
]);
};