Просмотр исходного кода

in server get size 0f uploaded files in DB

yusueketk 7 лет назад
Родитель
Сommit
f4fbc93ce4
2 измененных файлов с 10 добавлено и 13 удалено
  1. 4 3
      src/server/routes/attachment.js
  2. 6 10
      src/server/service/file-uploader/gridfs.js

+ 4 - 3
src/server/routes/attachment.js

@@ -114,14 +114,15 @@ module.exports = function(crowi, app) {
    * @apiParam {int} size
    */
   api.limit = async function(req, res) {
-    const uploadFileSize = req.query.size;
-    const usingFilesSize = await fileUploader.getCollectionSize();
     let isUploadable = true;
     if (process.env.FILE_UPLOAD !== 'mongodb') {
       return res.json(ApiResponse.success({isUploadable: isUploadable}));
     }
     else {
-      if (process.env.GRIDFS_LIMIT >= uploadFileSize + usingFilesSize) {
+      const uploadFileSize = req.query.size;
+      const usingFilesSize = await fileUploader.getCollectionSize();
+
+      if (process.env.GRIDFS_LIMIT >= +uploadFileSize + usingFilesSize) {
         return res.json(ApiResponse.success({isUploadable: isUploadable}));
       }
       else {

+ 6 - 10
src/server/service/file-uploader/gridfs.js

@@ -49,19 +49,15 @@ module.exports = function(crowi) {
    */
   lib.getCollectionSize = () => {
     return new Promise((resolve, reject) => {
-      // AttachmentFile.collection.stats(function(err, stats) {
-      //   resolve(stats.size);
-      // });
-      // Chunks.collection.stats(function(err, stats) {
-      //   resolve(stats.size);
-      // });
-      // console.log(AttachmentFileChunks);
-      // console.log(gridfs);
-      gridfs.mongooseConnection.db.collectionNames((e,name) => {
+      AttachmentFile.find((e, files) => {
+        let data = 0;
+        files.forEach((file) => {
+          data += file.length;
+        });
         if (e) {
           reject(e);
         }
-        resolve(name);
+        resolve(data);
       });
     });
   };