@blocklet/uploader-server 0.3.15 → 0.3.17

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.
@@ -40,17 +40,25 @@ export function initLocalStorageServer({
40
40
  cloneUploadMetadata.metadata.name = cloneUploadMetadata.metadata.name.split("/").pop();
41
41
  cloneUploadMetadata.metadata.filename = cloneUploadMetadata.metadata.name;
42
42
  }
43
- if (cloneUploadMetadata.id && !cloneUploadMetadata.runtime) {
43
+ if (cloneUploadMetadata.id) {
44
44
  const { id, metadata, size } = cloneUploadMetadata;
45
- cloneUploadMetadata.runtime = {
46
- relativePath: metadata?.relativePath,
47
- absolutePath: path.join(_path, id),
48
- size,
49
- hashFileName: id,
50
- originFileName: metadata?.filename,
51
- type: metadata?.type,
52
- fileType: metadata?.filetype
53
- };
45
+ if (!cloneUploadMetadata?.runtime?.absolutePath) {
46
+ cloneUploadMetadata.runtime = {
47
+ ...cloneUploadMetadata.runtime,
48
+ relativePath: metadata?.relativePath || cloneUploadMetadata.runtime?.relativePath,
49
+ absolutePath: path.join(_path, id),
50
+ size: size || cloneUploadMetadata.runtime?.size,
51
+ hashFileName: id,
52
+ originFileName: metadata?.filename || cloneUploadMetadata.runtime?.originFileName,
53
+ type: metadata?.type || cloneUploadMetadata.runtime?.type,
54
+ fileType: metadata?.filetype || cloneUploadMetadata.runtime?.fileType
55
+ };
56
+ } else {
57
+ const expectedPath = path.join(_path, id);
58
+ if (cloneUploadMetadata.runtime.absolutePath !== expectedPath) {
59
+ cloneUploadMetadata.runtime.absolutePath = expectedPath;
60
+ }
61
+ }
54
62
  }
55
63
  return cloneUploadMetadata;
56
64
  };
@@ -85,10 +93,17 @@ export function initLocalStorageServer({
85
93
  res.setHeader("x-uploader-file-exist", true);
86
94
  uploadMetadata = formatMetadata(uploadMetadata);
87
95
  await rewriteMetaDataFile(uploadMetadata);
88
- try {
89
- await removeExifFromFile(uploadMetadata.runtime.absolutePath);
90
- } catch (err) {
91
- logger.error("failed to remove EXIF from file", err);
96
+ const fileType = uploadMetadata.metadata?.filetype || uploadMetadata.metadata?.type || "";
97
+ const fileName = uploadMetadata.metadata?.filename || uploadMetadata.metadata?.name || "";
98
+ const fileExt = path.extname(fileName).toLowerCase();
99
+ const isImageFile = fileType.startsWith("image/");
100
+ const isBinaryFile = ["zip", "gz", "tgz", "7z", "dmg", "pkg", "apk"].includes(fileExt.replace(".", ""));
101
+ if (isImageFile && !isBinaryFile && uploadMetadata.runtime?.absolutePath) {
102
+ try {
103
+ await removeExifFromFile(uploadMetadata.runtime.absolutePath);
104
+ } catch (err) {
105
+ logger.error("failed to remove EXIF from file", err);
106
+ }
92
107
  }
93
108
  if (_onUploadFinish) {
94
109
  try {
@@ -54,21 +54,29 @@ function initLocalStorageServer({
54
54
  cloneUploadMetadata.metadata.name = cloneUploadMetadata.metadata.name.split("/").pop();
55
55
  cloneUploadMetadata.metadata.filename = cloneUploadMetadata.metadata.name;
56
56
  }
57
- if (cloneUploadMetadata.id && !cloneUploadMetadata.runtime) {
57
+ if (cloneUploadMetadata.id) {
58
58
  const {
59
59
  id,
60
60
  metadata,
61
61
  size
62
62
  } = cloneUploadMetadata;
63
- cloneUploadMetadata.runtime = {
64
- relativePath: metadata?.relativePath,
65
- absolutePath: _path2.default.join(_path, id),
66
- size,
67
- hashFileName: id,
68
- originFileName: metadata?.filename,
69
- type: metadata?.type,
70
- fileType: metadata?.filetype
71
- };
63
+ if (!cloneUploadMetadata?.runtime?.absolutePath) {
64
+ cloneUploadMetadata.runtime = {
65
+ ...cloneUploadMetadata.runtime,
66
+ relativePath: metadata?.relativePath || cloneUploadMetadata.runtime?.relativePath,
67
+ absolutePath: _path2.default.join(_path, id),
68
+ size: size || cloneUploadMetadata.runtime?.size,
69
+ hashFileName: id,
70
+ originFileName: metadata?.filename || cloneUploadMetadata.runtime?.originFileName,
71
+ type: metadata?.type || cloneUploadMetadata.runtime?.type,
72
+ fileType: metadata?.filetype || cloneUploadMetadata.runtime?.fileType
73
+ };
74
+ } else {
75
+ const expectedPath = _path2.default.join(_path, id);
76
+ if (cloneUploadMetadata.runtime.absolutePath !== expectedPath) {
77
+ cloneUploadMetadata.runtime.absolutePath = expectedPath;
78
+ }
79
+ }
72
80
  }
73
81
  return cloneUploadMetadata;
74
82
  };
@@ -105,10 +113,17 @@ function initLocalStorageServer({
105
113
  res.setHeader("x-uploader-file-exist", true);
106
114
  uploadMetadata = formatMetadata(uploadMetadata);
107
115
  await rewriteMetaDataFile(uploadMetadata);
108
- try {
109
- await (0, _utils.removeExifFromFile)(uploadMetadata.runtime.absolutePath);
110
- } catch (err) {
111
- _utils.logger.error("failed to remove EXIF from file", err);
116
+ const fileType = uploadMetadata.metadata?.filetype || uploadMetadata.metadata?.type || "";
117
+ const fileName = uploadMetadata.metadata?.filename || uploadMetadata.metadata?.name || "";
118
+ const fileExt = _path2.default.extname(fileName).toLowerCase();
119
+ const isImageFile = fileType.startsWith("image/");
120
+ const isBinaryFile = ["zip", "gz", "tgz", "7z", "dmg", "pkg", "apk"].includes(fileExt.replace(".", ""));
121
+ if (isImageFile && !isBinaryFile && uploadMetadata.runtime?.absolutePath) {
122
+ try {
123
+ await (0, _utils.removeExifFromFile)(uploadMetadata.runtime.absolutePath);
124
+ } catch (err) {
125
+ _utils.logger.error("failed to remove EXIF from file", err);
126
+ }
112
127
  }
113
128
  if (_onUploadFinish) {
114
129
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blocklet/uploader-server",
3
- "version": "0.3.15",
3
+ "version": "0.3.17",
4
4
  "description": "blocklet upload server",
5
5
  "publishConfig": {
6
6
  "access": "public"