Przeglądaj źródła

import fileupload class on runtime in attachment model and each uploader

mizozobu 6 lat temu
rodzic
commit
4db69dc703

+ 2 - 2
src/server/models/attachment.js

@@ -11,8 +11,6 @@ const mongoose = require('mongoose');
 const ObjectId = mongoose.Schema.Types.ObjectId;
 const ObjectId = mongoose.Schema.Types.ObjectId;
 
 
 module.exports = function(crowi) {
 module.exports = function(crowi) {
-  const fileUploader = require('../service/file-uploader')(crowi);
-
   function generateFileHash(fileName) {
   function generateFileHash(fileName) {
     const hash = require('crypto').createHash('md5');
     const hash = require('crypto').createHash('md5');
     hash.update(`${fileName}_${Date.now()}`);
     hash.update(`${fileName}_${Date.now()}`);
@@ -44,6 +42,7 @@ module.exports = function(crowi) {
 
 
 
 
   attachmentSchema.statics.create = async function(pageId, user, fileStream, originalName, fileFormat, fileSize) {
   attachmentSchema.statics.create = async function(pageId, user, fileStream, originalName, fileFormat, fileSize) {
+    const fileUploader = require('../service/file-uploader')(crowi);
     const Attachment = this;
     const Attachment = this;
 
 
     const extname = path.extname(originalName);
     const extname = path.extname(originalName);
@@ -94,6 +93,7 @@ module.exports = function(crowi) {
   };
   };
 
 
   attachmentSchema.statics.removeWithSubstanceById = async function(id) {
   attachmentSchema.statics.removeWithSubstanceById = async function(id) {
+    const fileUploader = require('../service/file-uploader')(crowi);
     // retrieve data from DB to get a completely populated instance
     // retrieve data from DB to get a completely populated instance
     const attachment = await this.findById(id);
     const attachment = await this.findById(id);
     await fileUploader.deleteFile(attachment);
     await fileUploader.deleteFile(attachment);

+ 1 - 2
src/server/service/file-uploader/aws.js

@@ -4,9 +4,8 @@ const axios = require('axios');
 const urljoin = require('url-join');
 const urljoin = require('url-join');
 const aws = require('aws-sdk');
 const aws = require('aws-sdk');
 
 
-const Uploader = require('./uploader');
-
 module.exports = function(crowi) {
 module.exports = function(crowi) {
+  const Uploader = require('./uploader');
   const lib = new Uploader(crowi.configManager);
   const lib = new Uploader(crowi.configManager);
 
 
   function getAwsConfig() {
   function getAwsConfig() {

+ 1 - 2
src/server/service/file-uploader/gridfs.js

@@ -2,9 +2,8 @@ const logger = require('@alias/logger')('growi:service:fileUploaderGridfs');
 const mongoose = require('mongoose');
 const mongoose = require('mongoose');
 const util = require('util');
 const util = require('util');
 
 
-const Uploader = require('./uploader');
-
 module.exports = function(crowi) {
 module.exports = function(crowi) {
+  const Uploader = require('./uploader');
   const lib = new Uploader(crowi.configManager);
   const lib = new Uploader(crowi.configManager);
   const COLLECTION_NAME = 'attachmentFiles';
   const COLLECTION_NAME = 'attachmentFiles';
   const CHUNK_COLLECTION_NAME = `${COLLECTION_NAME}.chunks`;
   const CHUNK_COLLECTION_NAME = `${COLLECTION_NAME}.chunks`;

+ 1 - 2
src/server/service/file-uploader/local.js

@@ -5,9 +5,8 @@ const path = require('path');
 const mkdir = require('mkdirp');
 const mkdir = require('mkdirp');
 const streamToPromise = require('stream-to-promise');
 const streamToPromise = require('stream-to-promise');
 
 
-const Uploader = require('./uploader');
-
 module.exports = function(crowi) {
 module.exports = function(crowi) {
+  const Uploader = require('./uploader');
   const lib = new Uploader(crowi.configManager);
   const lib = new Uploader(crowi.configManager);
   const basePath = path.posix.join(crowi.publicDir, 'uploads');
   const basePath = path.posix.join(crowi.publicDir, 'uploads');
 
 

+ 1 - 2
src/server/service/file-uploader/none.js

@@ -1,9 +1,8 @@
 // crowi-fileupload-none
 // crowi-fileupload-none
-const Uploader = require('./uploader');
 
 
 module.exports = function(crowi) {
 module.exports = function(crowi) {
   const debug = require('debug')('growi:service:fileUploaderNone');
   const debug = require('debug')('growi:service:fileUploaderNone');
-
+  const Uploader = require('./uploader');
   const lib = new Uploader(crowi.configManager);
   const lib = new Uploader(crowi.configManager);
 
 
   lib.deleteFile = function(filePath) {
   lib.deleteFile = function(filePath) {