index.js 852 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. const logger = require('@alias/logger')('growi:service:FileUploaderServise');
  2. const envToModuleMappings = {
  3. aws: 'aws',
  4. local: 'local',
  5. none: 'none',
  6. mongo: 'gridfs',
  7. mongodb: 'gridfs',
  8. gridfs: 'gridfs',
  9. gcp: 'gcs',
  10. gcs: 'gcs',
  11. };
  12. class FileUploadServiceFactory {
  13. initializeUploader(crowi) {
  14. const method = envToModuleMappings[process.env.FILE_UPLOAD] || 'aws';
  15. const modulePath = `./${method}`;
  16. this.uploader = require(modulePath)(crowi);
  17. if (this.uploader == null) {
  18. logger.warn('Failed to initialize uploader.');
  19. }
  20. }
  21. getUploader(crowi) {
  22. if (this.uploader == null) {
  23. this.initializeUploader(crowi);
  24. }
  25. return this.uploader;
  26. }
  27. }
  28. module.exports = (crowi) => {
  29. const factory = new FileUploadServiceFactory(crowi);
  30. return factory.getUploader(crowi);
  31. };