@social-mail/social-mail-web-server 1.5.21 → 1.5.22
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.
- package/dist/server/services/cache/DiskCacheService.d.ts.map +1 -1
- package/dist/server/services/cache/DiskCacheService.js +13 -2
- package/dist/server/services/cache/DiskCacheService.js.map +1 -1
- package/dist/server/storage/TempFileService.d.ts +1 -0
- package/dist/server/storage/TempFileService.d.ts.map +1 -1
- package/dist/server/storage/TempFileService.js +18 -0
- package/dist/server/storage/TempFileService.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/server/services/cache/DiskCacheService.ts +17 -2
- package/src/server/storage/TempFileService.ts +19 -0
package/package.json
CHANGED
|
@@ -100,6 +100,9 @@ export default class DiskCacheService {
|
|
|
100
100
|
old = old.addDays(1);
|
|
101
101
|
|
|
102
102
|
const dir = await fsp.opendir(cacheRoot, { recursive: true });
|
|
103
|
+
|
|
104
|
+
const filesToDelete = [];
|
|
105
|
+
|
|
103
106
|
try {
|
|
104
107
|
for await (const entry of dir) {
|
|
105
108
|
if (!entry.isFile()) {
|
|
@@ -110,8 +113,13 @@ export default class DiskCacheService {
|
|
|
110
113
|
const st = await fsp.stat(filePath);
|
|
111
114
|
if (st.mtimeMs < old.msSinceEpoch) {
|
|
112
115
|
target -= st.size;
|
|
113
|
-
|
|
114
|
-
|
|
116
|
+
if (filesToDelete.length < 100) {
|
|
117
|
+
filesToDelete.push(filePath);
|
|
118
|
+
} else {
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
// console.log(`${filePath} deleted.`);
|
|
122
|
+
// await fsp.unlink(filePath);
|
|
115
123
|
|
|
116
124
|
if (target < 0) {
|
|
117
125
|
break;
|
|
@@ -121,9 +129,16 @@ export default class DiskCacheService {
|
|
|
121
129
|
// we will ignore the error...
|
|
122
130
|
}
|
|
123
131
|
}
|
|
132
|
+
|
|
124
133
|
} finally {
|
|
125
134
|
await dir.close();
|
|
126
135
|
}
|
|
136
|
+
|
|
137
|
+
for (const element of filesToDelete) {
|
|
138
|
+
console.log(`${element} deleted.`);
|
|
139
|
+
await fsp.unlink(element);
|
|
140
|
+
}
|
|
141
|
+
|
|
127
142
|
}
|
|
128
143
|
|
|
129
144
|
console.log(`Temp folder cleared, ${finalTarget-target} bytes freed.`);
|
|
@@ -178,6 +178,25 @@ export default class TempFileService {
|
|
|
178
178
|
return tf;
|
|
179
179
|
}
|
|
180
180
|
|
|
181
|
+
public async createLink(fileName: string, src: string, contentType: string) {
|
|
182
|
+
if (fileName) {
|
|
183
|
+
fileName = fileName.replace(/([\/\<\>\:\"\\\|\?\*]+)/g, "-");
|
|
184
|
+
} else {
|
|
185
|
+
fileName = "temp.dat";
|
|
186
|
+
}
|
|
187
|
+
const qIndex = fileName.indexOf("?");
|
|
188
|
+
if (qIndex !== -1) {
|
|
189
|
+
fileName = fileName.substring(0, qIndex);
|
|
190
|
+
}
|
|
191
|
+
const fileInfo = path.parse(fileName);
|
|
192
|
+
const tf = await this.createTempFile(fileInfo.ext, fileName, contentType);
|
|
193
|
+
// this should save some space...
|
|
194
|
+
await fsp.link(src, tf.path);
|
|
195
|
+
// await fsp.writeFile(tf.path, content);
|
|
196
|
+
return tf;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
|
|
181
200
|
[Symbol.dispose]() {
|
|
182
201
|
for (const iterator of this.files) {
|
|
183
202
|
iterator.delete().catch((error) => console.error(error));
|