@blocklet/uploader-server 0.3.15 → 0.3.16
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
|
|
43
|
+
if (cloneUploadMetadata.id) {
|
|
44
44
|
const { id, metadata, size } = cloneUploadMetadata;
|
|
45
|
-
cloneUploadMetadata
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
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
|
|
57
|
+
if (cloneUploadMetadata.id) {
|
|
58
58
|
const {
|
|
59
59
|
id,
|
|
60
60
|
metadata,
|
|
61
61
|
size
|
|
62
62
|
} = cloneUploadMetadata;
|
|
63
|
-
cloneUploadMetadata
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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 {
|