@blocklet/uploader-server 0.1.76 → 0.1.78

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.
@@ -7,11 +7,11 @@ const crypto = require("crypto");
7
7
  const mime = require("mime-types");
8
8
  const joinUrlLib = require("url-join");
9
9
  const { default: queue } = require("p-queue");
10
- const { setPDFDownloadHeader } = require("../utils");
10
+ const { setPDFDownloadHeader, logger } = require("../utils");
11
11
  const validFilePathInDirPath = (dirPath, filePath) => {
12
12
  const fileName = path.basename(filePath);
13
13
  if (!filePath.startsWith(dirPath) || path.join(dirPath, fileName) !== filePath) {
14
- console.error("Invalid file path: ", filePath);
14
+ logger.error("Invalid file path: ", filePath);
15
15
  throw new Error("Invalid file path");
16
16
  }
17
17
  return true;
@@ -90,7 +90,7 @@ export function initLocalStorageServer({
90
90
  const result = await _onUploadFinish(req, res, uploadMetadata);
91
91
  return result;
92
92
  } catch (err) {
93
- console.error("@blocklet/uploader: onUploadFinish error: ", err);
93
+ logger.error("@blocklet/uploader: onUploadFinish error: ", err);
94
94
  newServer.delete(uploadMetadata.id);
95
95
  res.setHeader("x-uploader-file-exist", false);
96
96
  throw err;
@@ -141,19 +141,19 @@ export function initLocalStorageServer({
141
141
  fn: () => {
142
142
  try {
143
143
  newServer.cleanUpExpiredUploads().then((count) => {
144
- console.info(`@blocklet/uploader: cleanup expired uploads done: ${count}`);
144
+ logger.info(`@blocklet/uploader: cleanup expired uploads done: ${count}`);
145
145
  }).catch((err) => {
146
- console.error(`@blocklet/uploader: cleanup expired uploads error`, err);
146
+ logger.error(`@blocklet/uploader: cleanup expired uploads error`, err);
147
147
  });
148
148
  } catch (err) {
149
- console.error(`@blocklet/uploader: cleanup expired uploads error`, err);
149
+ logger.error(`@blocklet/uploader: cleanup expired uploads error`, err);
150
150
  }
151
151
  },
152
152
  options: { runOnInit: false }
153
153
  }
154
154
  ],
155
155
  onError: (err) => {
156
- console.error("@blocklet/uploader: cleanup job failed", err);
156
+ logger.error("@blocklet/uploader: cleanup job failed", err);
157
157
  }
158
158
  });
159
159
  newServer.delete = async (key) => {
@@ -161,7 +161,7 @@ export function initLocalStorageServer({
161
161
  await configstore.delete(key);
162
162
  await configstore.delete(key, false);
163
163
  } catch (err) {
164
- console.error("@blocklet/uploader: delete error: ", err);
164
+ logger.error("@blocklet/uploader: delete error: ", err);
165
165
  }
166
166
  };
167
167
  newServer.on(EVENTS.POST_RECEIVE, async (req, res, uploadMetadata) => {
@@ -262,7 +262,7 @@ export async function fileExistBeforeUpload(req, res, next) {
262
262
  ...realMetaData
263
263
  };
264
264
  } catch (err) {
265
- console.error("@blocklet/uploader: parse metadata error: ", err);
265
+ logger.error("@blocklet/uploader: parse metadata error: ", err);
266
266
  }
267
267
  }
268
268
  const uploadResult = await uploaderProps.onUploadFinish(req, res, metaData);
@@ -282,7 +282,7 @@ export async function getMetaDataByFilePath(filePath) {
282
282
  const metaDataJson = JSON.parse(metaData);
283
283
  return metaDataJson;
284
284
  } catch (err) {
285
- console.error("@blocklet/uploader: getMetaDataByPath error: ", err);
285
+ logger.error("@blocklet/uploader: getMetaDataByPath error: ", err);
286
286
  }
287
287
  }
288
288
  return null;
@@ -335,17 +335,17 @@ class RewriteFileConfigstore {
335
335
  if (isExist) {
336
336
  await fs.rm(filePath);
337
337
  } else {
338
- console.log("Can not remove file, the file not exist: ", filePath);
338
+ logger.log("Can not remove file, the file not exist: ", filePath);
339
339
  }
340
340
  } catch (err) {
341
- console.error("@blocklet/uploader: safeDeleteFile error: ", err);
341
+ logger.error("@blocklet/uploader: safeDeleteFile error: ", err);
342
342
  }
343
343
  }
344
344
  async delete(key, isMetadata = true) {
345
345
  try {
346
346
  await this.queue.add(() => this.safeDeleteFile(this.resolve(key, isMetadata)));
347
347
  } catch (err) {
348
- console.error("@blocklet/uploader: delete error: ", err);
348
+ logger.error("@blocklet/uploader: delete error: ", err);
349
349
  }
350
350
  }
351
351
  async list() {
@@ -4,9 +4,8 @@ const config = require("@blocklet/sdk/lib/config");
4
4
  const { getResources } = require("@blocklet/sdk/lib/component");
5
5
  const joinUrl = require("url-join");
6
6
  const component = require("@blocklet/sdk/lib/component");
7
- const { setPDFDownloadHeader } = require("../utils");
7
+ const { setPDFDownloadHeader, logger } = require("../utils");
8
8
  const { ImageBinDid } = require("../constants");
9
- const logger = console;
10
9
  const ImgResourceType = "imgpack";
11
10
  let skipRunningCheck = false;
12
11
  let resourceTypes = [
@@ -46,7 +45,7 @@ export const mappingResource = async () => {
46
45
  );
47
46
  return canUseResources;
48
47
  } catch (error) {
49
- console.error(error);
48
+ logger.error(error);
50
49
  }
51
50
  return false;
52
51
  };
package/es/utils.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { Method } from 'axios';
2
+ export declare let logger: Console;
2
3
  type CallComponentOptions<D = any, P = any> = {
3
4
  name?: string;
4
5
  method?: Method;
package/es/utils.js CHANGED
@@ -9,6 +9,11 @@ import crypto from "crypto";
9
9
  import { getSignData } from "@blocklet/sdk/lib/util/verify-sign";
10
10
  import FormData from "form-data";
11
11
  import omit from "lodash/omit";
12
+ export let logger = console;
13
+ if (process.env.BLOCKLET_LOG_DIR) {
14
+ const initLogger = require("@blocklet/logger");
15
+ logger = initLogger("uploader-server");
16
+ }
12
17
  const DEFAULT_TTL = 5 * 60 * 1e3;
13
18
  const appUrl = process.env.BLOCKLET_APP_URL || "";
14
19
  const trustedDomainsCache = {
@@ -72,7 +77,7 @@ export async function proxyImageDownload(req, res, next) {
72
77
  throw new Error("download image error");
73
78
  }
74
79
  } catch (err) {
75
- console.error("Proxy url failed: ", err);
80
+ logger.error("Proxy url failed: ", err);
76
81
  res.status(500).send("Proxy url failed");
77
82
  }
78
83
  } else {
@@ -28,12 +28,13 @@ const {
28
28
  default: queue
29
29
  } = require("p-queue");
30
30
  const {
31
- setPDFDownloadHeader
31
+ setPDFDownloadHeader,
32
+ logger
32
33
  } = require("../utils");
33
34
  const validFilePathInDirPath = (dirPath, filePath) => {
34
35
  const fileName = path.basename(filePath);
35
36
  if (!filePath.startsWith(dirPath) || path.join(dirPath, fileName) !== filePath) {
36
- console.error("Invalid file path: ", filePath);
37
+ logger.error("Invalid file path: ", filePath);
37
38
  throw new Error("Invalid file path");
38
39
  }
39
40
  return true;
@@ -118,7 +119,7 @@ function initLocalStorageServer({
118
119
  const result = await _onUploadFinish(req, res, uploadMetadata);
119
120
  return result;
120
121
  } catch (err) {
121
- console.error("@blocklet/uploader: onUploadFinish error: ", err);
122
+ logger.error("@blocklet/uploader: onUploadFinish error: ", err);
122
123
  newServer.delete(uploadMetadata.id);
123
124
  res.setHeader("x-uploader-file-exist", false);
124
125
  throw err;
@@ -171,12 +172,12 @@ function initLocalStorageServer({
171
172
  fn: () => {
172
173
  try {
173
174
  newServer.cleanUpExpiredUploads().then(count => {
174
- console.info(`@blocklet/uploader: cleanup expired uploads done: ${count}`);
175
+ logger.info(`@blocklet/uploader: cleanup expired uploads done: ${count}`);
175
176
  }).catch(err => {
176
- console.error(`@blocklet/uploader: cleanup expired uploads error`, err);
177
+ logger.error(`@blocklet/uploader: cleanup expired uploads error`, err);
177
178
  });
178
179
  } catch (err) {
179
- console.error(`@blocklet/uploader: cleanup expired uploads error`, err);
180
+ logger.error(`@blocklet/uploader: cleanup expired uploads error`, err);
180
181
  }
181
182
  },
182
183
  options: {
@@ -184,7 +185,7 @@ function initLocalStorageServer({
184
185
  }
185
186
  }],
186
187
  onError: err => {
187
- console.error("@blocklet/uploader: cleanup job failed", err);
188
+ logger.error("@blocklet/uploader: cleanup job failed", err);
188
189
  }
189
190
  });
190
191
  newServer.delete = async key => {
@@ -192,7 +193,7 @@ function initLocalStorageServer({
192
193
  await configstore.delete(key);
193
194
  await configstore.delete(key, false);
194
195
  } catch (err) {
195
- console.error("@blocklet/uploader: delete error: ", err);
196
+ logger.error("@blocklet/uploader: delete error: ", err);
196
197
  }
197
198
  };
198
199
  newServer.on(EVENTS.POST_RECEIVE, async (req, res, uploadMetadata) => {
@@ -309,7 +310,7 @@ async function fileExistBeforeUpload(req, res, next) {
309
310
  ...realMetaData
310
311
  };
311
312
  } catch (err) {
312
- console.error("@blocklet/uploader: parse metadata error: ", err);
313
+ logger.error("@blocklet/uploader: parse metadata error: ", err);
313
314
  }
314
315
  }
315
316
  const uploadResult = await uploaderProps.onUploadFinish(req, res, metaData);
@@ -329,7 +330,7 @@ async function getMetaDataByFilePath(filePath) {
329
330
  const metaDataJson = JSON.parse(metaData);
330
331
  return metaDataJson;
331
332
  } catch (err) {
332
- console.error("@blocklet/uploader: getMetaDataByPath error: ", err);
333
+ logger.error("@blocklet/uploader: getMetaDataByPath error: ", err);
333
334
  }
334
335
  }
335
336
  return null;
@@ -384,17 +385,17 @@ class RewriteFileConfigstore {
384
385
  if (isExist) {
385
386
  await fs.rm(filePath);
386
387
  } else {
387
- console.log("Can not remove file, the file not exist: ", filePath);
388
+ logger.log("Can not remove file, the file not exist: ", filePath);
388
389
  }
389
390
  } catch (err) {
390
- console.error("@blocklet/uploader: safeDeleteFile error: ", err);
391
+ logger.error("@blocklet/uploader: safeDeleteFile error: ", err);
391
392
  }
392
393
  }
393
394
  async delete(key, isMetadata = true) {
394
395
  try {
395
396
  await this.queue.add(() => this.safeDeleteFile(this.resolve(key, isMetadata)));
396
397
  } catch (err) {
397
- console.error("@blocklet/uploader: delete error: ", err);
398
+ logger.error("@blocklet/uploader: delete error: ", err);
398
399
  }
399
400
  }
400
401
  async list() {
@@ -18,12 +18,12 @@ const {
18
18
  const joinUrl = require("url-join");
19
19
  const component = require("@blocklet/sdk/lib/component");
20
20
  const {
21
- setPDFDownloadHeader
21
+ setPDFDownloadHeader,
22
+ logger
22
23
  } = require("../utils");
23
24
  const {
24
25
  ImageBinDid
25
26
  } = require("../constants");
26
- const logger = console;
27
27
  const ImgResourceType = "imgpack";
28
28
  let skipRunningCheck = false;
29
29
  let resourceTypes = [{
@@ -61,7 +61,7 @@ const mappingResource = async () => {
61
61
  );
62
62
  return canUseResources;
63
63
  } catch (error) {
64
- console.error(error);
64
+ logger.error(error);
65
65
  }
66
66
  return false;
67
67
  };
package/lib/utils.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { Method } from 'axios';
2
+ export declare let logger: Console;
2
3
  type CallComponentOptions<D = any, P = any> = {
3
4
  name?: string;
4
5
  method?: Method;
package/lib/utils.js CHANGED
@@ -7,6 +7,7 @@ exports.checkTrustedReferer = checkTrustedReferer;
7
7
  exports.getFileHash = void 0;
8
8
  exports.getMediaKitFileStream = getMediaKitFileStream;
9
9
  exports.getTrustedDomainsCache = getTrustedDomainsCache;
10
+ exports.logger = void 0;
10
11
  exports.proxyImageDownload = proxyImageDownload;
11
12
  exports.setPDFDownloadHeader = setPDFDownloadHeader;
12
13
  exports.uploadToMediaKit = uploadToMediaKit;
@@ -22,6 +23,11 @@ var _verifySign = require("@blocklet/sdk/lib/util/verify-sign");
22
23
  var _formData = _interopRequireDefault(require("form-data"));
23
24
  var _omit = _interopRequireDefault(require("lodash/omit"));
24
25
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
26
+ let logger = exports.logger = console;
27
+ if (process.env.BLOCKLET_LOG_DIR) {
28
+ const initLogger = require("@blocklet/logger");
29
+ exports.logger = logger = initLogger("uploader-server");
30
+ }
25
31
  const DEFAULT_TTL = 5 * 60 * 1e3;
26
32
  const appUrl = process.env.BLOCKLET_APP_URL || "";
27
33
  const trustedDomainsCache = {
@@ -91,7 +97,7 @@ async function proxyImageDownload(req, res, next) {
91
97
  throw new Error("download image error");
92
98
  }
93
99
  } catch (err) {
94
- console.error("Proxy url failed: ", err);
100
+ logger.error("Proxy url failed: ", err);
95
101
  res.status(500).send("Proxy url failed");
96
102
  }
97
103
  } else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blocklet/uploader-server",
3
- "version": "0.1.76",
3
+ "version": "0.1.78",
4
4
  "description": "blocklet upload server",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -36,16 +36,15 @@
36
36
  "@uppy/companion": "4.15.1"
37
37
  },
38
38
  "dependencies": {
39
- "@abtnode/cron": "^1.16.37",
40
- "@blocklet/constant": "^1.16.37",
41
- "@blocklet/logger": "^1.16.37",
42
- "@blocklet/sdk": "^1.16.37",
39
+ "@abtnode/cron": "^1.16.38",
40
+ "@blocklet/constant": "^1.16.38",
41
+ "@blocklet/logger": "^1.16.38",
42
+ "@blocklet/sdk": "^1.16.38",
43
43
  "@tus/file-store": "1.0.0",
44
44
  "@tus/server": "1.0.0",
45
45
  "@uppy/companion": "4.15.1",
46
46
  "axios": "^1.7.8",
47
47
  "body-parser": "^1.20.3",
48
- "crypto": "^1.0.1",
49
48
  "express-session": "1.17.3",
50
49
  "isbot": "^5.1.17",
51
50
  "mime-types": "^2.1.35",