瀏覽代碼

Добавил ограничение на максимальный размер скачиваемого файла

Book Pauk 6 年之前
父節點
當前提交
c46edd4cad
共有 1 個文件被更改,包括 8 次插入3 次删除
  1. 8 3
      server/core/ReaderWorker.js

+ 8 - 3
server/core/ReaderWorker.js

@@ -15,6 +15,8 @@ class ReaderWorker {
     }
 
     async loadBook(wState, url) {
+        const maxDownloadSize = 10*1024*1024;
+        let errMes = '';
         try {
             wState.set({state: 'download', step: 1, totalSteps: 3, url});
 
@@ -22,13 +24,16 @@ class ReaderWorker {
             const d = download(url);
             d.on('downloadProgress', progress => {
                 wState.set({progress:  Math.round(progress.percent*100)});
-            })
-
+                if (progress.transferred > maxDownloadSize) {
+                    errMes = 'file too big';
+                    d.destroy();
+                }
+            });
             await pipeline(d, fs.createWriteStream(`${this.tempDownloadDir}/${tempFilename}`));
             
             wState.finish({step: 3, file: tempFilename});
         } catch (e) {
-            wState.set({state: 'error', error: e.message});
+            wState.set({state: 'error', error: (errMes ? errMes : e.message)});
         }
     }