diff --git a/packages/core/upload/server/bootstrap.js b/packages/core/upload/server/bootstrap.js index 1a075763ac..faa677b8e1 100644 --- a/packages/core/upload/server/bootstrap.js +++ b/packages/core/upload/server/bootstrap.js @@ -51,6 +51,10 @@ const createProvider = config => { return Object.assign(Object.create(baseProvider), { ...providerInstance, + original: providerInstance, + uploadStream(file, options = actionOptions.upload) { + return providerInstance.uploadStream(file, options); + }, upload(file, options = actionOptions.upload) { return providerInstance.upload(file, options); }, @@ -64,6 +68,9 @@ const baseProvider = { extend(obj) { Object.assign(this, obj); }, + uploadStream() { + throw new Error('Provider uploadStream method is not implemented'); + }, upload() { throw new Error('Provider upload method is not implemented'); }, diff --git a/packages/core/upload/server/services/provider.js b/packages/core/upload/server/services/provider.js index c286776016..27f13b1449 100644 --- a/packages/core/upload/server/services/provider.js +++ b/packages/core/upload/server/services/provider.js @@ -5,7 +5,7 @@ const { streamToBuffer } = require('../utils/file'); module.exports = ({ strapi }) => ({ async upload(file) { - if (isFunction(strapi.plugin('upload').provider.uploadStream)) { + if (isFunction(strapi.plugin('upload').provider.original.uploadStream)) { file.stream = file.getStream(); await strapi.plugin('upload').provider.uploadStream(file); delete file.stream;