@nger/fk-upload 1.0.76 → 1.0.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,11 @@
1
1
  import { TaskEntity, TaskManager } from '@nger/rabbitmq';
2
2
  import { Db } from '@nger/typeorm';
3
+ import { Injector } from '@nger/core';
3
4
  export declare class CheckUploadController {
4
5
  private db;
5
6
  private manager;
6
- constructor(db: Db, manager: TaskManager);
7
+ private injector;
8
+ constructor(db: Db, manager: TaskManager, injector: Injector);
7
9
  reupload(): Promise<string>;
8
10
  recheck(): Promise<{
9
11
  msg: string;
@@ -13,9 +13,11 @@ const fs_extra_1 = require("fs-extra");
13
13
  let CheckUploadController = class CheckUploadController {
14
14
  db;
15
15
  manager;
16
- constructor(db, manager) {
16
+ injector;
17
+ constructor(db, manager, injector) {
17
18
  this.db = db;
18
19
  this.manager = manager;
20
+ this.injector = injector;
19
21
  }
20
22
  async reupload() {
21
23
  const task = this.db.manager.getRepository(rabbitmq_1.TaskEntity);
@@ -39,14 +41,20 @@ let CheckUploadController = class CheckUploadController {
39
41
  const download = this.db.manager.getRepository(fk_download_task_entity_1.FkDownloadTaskEntity);
40
42
  // remove to large
41
43
  const largs = await download.find({ where: { totalSize: (0, typeorm_2.MoreThan)(1024 * 1024 * 1024) } });
42
- // remove not use
43
44
  // remove finish
44
- const list = await download.find({ where: { status: (0, typeorm_2.In)([2, 3]) } });
45
+ const list = await download.find({ where: { status: (0, typeorm_2.Not)(1) } });
46
+ // remove not use
47
+ const root = this.injector.get(core_1.APP_ROOT);
48
+ // const uploads = readdirSync(join(root, 'attachments/fk-upload'));
45
49
  const removes = [];
46
50
  Promise.all([...list, ...largs].map(async (item) => {
47
51
  if ((0, fs_1.existsSync)(item.path)) {
48
- await (0, fs_extra_1.unlink)(item.path);
49
- removes.push(item.path);
52
+ try {
53
+ await (0, fs_extra_1.unlink)(item.path);
54
+ await (0, fs_extra_1.unlink)(item.path);
55
+ removes.push(item.path);
56
+ }
57
+ catch (e) { }
50
58
  }
51
59
  }));
52
60
  return { msg: 'succes', removes };
@@ -78,6 +86,6 @@ tslib_1.__decorate([
78
86
  ], CheckUploadController.prototype, "checkSpace", null);
79
87
  CheckUploadController = tslib_1.__decorate([
80
88
  (0, core_1.Controller)(`@nger/fk-upload`),
81
- tslib_1.__metadata("design:paramtypes", [typeorm_1.Db, rabbitmq_1.TaskManager])
89
+ tslib_1.__metadata("design:paramtypes", [typeorm_1.Db, rabbitmq_1.TaskManager, core_1.Injector])
82
90
  ], CheckUploadController);
83
91
  exports.CheckUploadController = CheckUploadController;
@@ -34,6 +34,7 @@ class DownloadTask extends rabbitmq_1.Task {
34
34
  const download = await db.manager.findOne(entities_1.FkDownloadTaskEntity, { where: { filename: task.filename } });
35
35
  if (download.status !== 0) {
36
36
  complete();
37
+ this.downloadingCount -= 1;
37
38
  return next && next();
38
39
  }
39
40
  (0, fs_extra_1.ensureDir)((0, path_1.dirname)(task.path));
@@ -77,6 +78,7 @@ class DownloadTask extends rabbitmq_1.Task {
77
78
  req.on('response', async (resp) => {
78
79
  const headers = resp.headers;
79
80
  total = Number(headers["content-length"]);
81
+ console.log(`${task.filename} total is ${total}b`);
80
82
  if (total > 1024 * 1024 * 1024) {
81
83
  console.log(`file is to large`);
82
84
  req.destroy();
@@ -23,7 +23,10 @@ class EffectTask extends rabbitmq_1.Task {
23
23
  const db = injector.get(typeorm_1.Db);
24
24
  await db.manager.update(entities_1.FkDownloadTaskEntity, task.filename, { status: 3 });
25
25
  if (task.topicId) {
26
- await (0, fs_extra_1.unlink)(task.path);
26
+ try {
27
+ await (0, fs_extra_1.unlink)(task.path);
28
+ }
29
+ catch (e) { }
27
30
  await w7.manager.update(w7_1.W7ChatTopicEntity, task.topicId, { thirdUrl: task.uploadUrl }).then(() => complete()).catch(() => fail());
28
31
  complete();
29
32
  }
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tasksProviders = void 0;
4
4
  const rabbitmq_1 = require("@nger/rabbitmq");
5
5
  const download_task_1 = require("./download-task");
6
+ const effect_task_1 = require("./effect-task");
6
7
  const schedule_task_1 = require("./schedule-task");
7
8
  const upload_task_1 = require("./upload-task");
8
9
  exports.tasksProviders = [
@@ -21,9 +22,9 @@ exports.tasksProviders = [
21
22
  useFactory: () => new upload_task_1.UploadTask(),
22
23
  multi: true
23
24
  },
24
- // {
25
- // provide: Task,
26
- // useFactory: () => new EffectTask(),
27
- // multi: true
28
- // }
25
+ {
26
+ provide: rabbitmq_1.Task,
27
+ useFactory: () => new effect_task_1.EffectTask(),
28
+ multi: true
29
+ }
29
30
  ];
@@ -24,17 +24,23 @@ class UploadTask extends rabbitmq_1.Task {
24
24
  // not exist
25
25
  if (!old) {
26
26
  complete();
27
+ this.runingCount -= 1;
28
+ return next && next();
27
29
  }
28
30
  // > 1G give up
29
31
  if (task.total >= 1024 * 1024 * 1024) {
30
32
  complete();
33
+ this.runingCount -= 1;
34
+ return next && next();
31
35
  }
32
36
  if (!(0, fs_1.existsSync)(task.path) || (old.fileMd5 && old.fileMd5.length > 0)) {
33
37
  await db.manager.update(entities_1.FkDownloadTaskEntity, task.filename, { status: 0 });
34
38
  complete();
39
+ this.runingCount -= 1;
40
+ return next && next();
35
41
  }
36
42
  if (old.status === 1) {
37
- if (this.runingCount > 3) {
43
+ if (this.runingCount > 5) {
38
44
  throw new Error(`system is busy`);
39
45
  }
40
46
  this.runingCount += 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nger/fk-upload",
3
- "version": "1.0.76",
3
+ "version": "1.0.80",
4
4
  "description": "",
5
5
  "main": "dist/core.js",
6
6
  "types": "dist/core.d.ts",