digitaltwin-core 0.12.3 → 0.13.1
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/components/tileset_manager.d.ts +5 -13
- package/dist/components/tileset_manager.d.ts.map +1 -1
- package/dist/components/tileset_manager.js +148 -232
- package/dist/components/tileset_manager.js.map +1 -1
- package/dist/engine/queue_manager.js +1 -1
- package/dist/engine/queue_manager.js.map +1 -1
- package/dist/engine/upload_processor.d.ts +2 -38
- package/dist/engine/upload_processor.d.ts.map +1 -1
- package/dist/engine/upload_processor.js +22 -88
- package/dist/engine/upload_processor.js.map +1 -1
- package/dist/types/data_record.d.ts +16 -0
- package/dist/types/data_record.d.ts.map +1 -1
- package/dist/utils/map_to_data_record.d.ts.map +1 -1
- package/dist/utils/map_to_data_record.js +5 -1
- package/dist/utils/map_to_data_record.js.map +1 -1
- package/dist/utils/zip_utils.d.ts.map +1 -1
- package/dist/utils/zip_utils.js +40 -16
- package/dist/utils/zip_utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -92,27 +92,19 @@ export declare abstract class TilesetManager extends AssetsManager implements As
|
|
|
92
92
|
*/
|
|
93
93
|
handleUpload(req: any): Promise<DataResponse>;
|
|
94
94
|
/**
|
|
95
|
-
*
|
|
96
|
-
* @private
|
|
95
|
+
* Queue upload for background processing. Returns HTTP 202 immediately.
|
|
97
96
|
*/
|
|
98
97
|
private handleAsyncUpload;
|
|
99
98
|
/**
|
|
100
|
-
*
|
|
101
|
-
* @private
|
|
99
|
+
* Process upload synchronously (fallback when queue unavailable).
|
|
102
100
|
*/
|
|
103
101
|
private handleSyncUpload;
|
|
104
102
|
/**
|
|
105
|
-
* Get
|
|
103
|
+
* Get upload status for polling. Returns: pending | processing | completed | failed
|
|
106
104
|
*/
|
|
107
105
|
handleGetStatus(req: any): Promise<DataResponse>;
|
|
108
106
|
/**
|
|
109
|
-
* Serve
|
|
110
|
-
*
|
|
111
|
-
* This endpoint allows Cesium to load tileset.json and all referenced files
|
|
112
|
-
* (tiles, textures, etc.) using relative paths.
|
|
113
|
-
*
|
|
114
|
-
* @param req - HTTP request with params.id and params['0'] (file path)
|
|
115
|
-
* @returns DataResponse with file content
|
|
107
|
+
* Serve extracted tileset file (tileset.json, .b3dm, textures, etc.)
|
|
116
108
|
*/
|
|
117
109
|
handleGetFile(req: any): Promise<DataResponse>;
|
|
118
110
|
/**
|
|
@@ -124,7 +116,7 @@ export declare abstract class TilesetManager extends AssetsManager implements As
|
|
|
124
116
|
*/
|
|
125
117
|
retrieve(req?: any): Promise<DataResponse>;
|
|
126
118
|
/**
|
|
127
|
-
*
|
|
119
|
+
* Delete tileset and all extracted files from storage.
|
|
128
120
|
*/
|
|
129
121
|
handleDelete(req: any): Promise<DataResponse>;
|
|
130
122
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tileset_manager.d.ts","sourceRoot":"","sources":["../../src/components/tileset_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAIxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAGnC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,IAAI,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB,UAAU,CAAC,EAAE;QACT,KAAK,EAAE,KAAK,CAAC;YACT,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;SACf,CAAC,CAAA;QACF,SAAS,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;CACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,8BAAsB,cAAe,SAAQ,aAAc,YAAW,eAAe;IACjF,6DAA6D;IAC7D,SAAS,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,CAAO;IAE1C;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAGlC;;;;;;;;;;;;;;;;OAgBG;IACG,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tileset_manager.d.ts","sourceRoot":"","sources":["../../src/components/tileset_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAIxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAGnC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,IAAI,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB,UAAU,CAAC,EAAE;QACT,KAAK,EAAE,KAAK,CAAC;YACT,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;SACf,CAAC,CAAA;QACF,SAAS,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;CACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,8BAAsB,cAAe,SAAQ,aAAc,YAAW,eAAe;IACjF,6DAA6D;IAC7D,SAAS,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,CAAO;IAE1C;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAGlC;;;;;;;;;;;;;;;;OAgBG;IACG,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;IAuFnD;;OAEG;YACW,iBAAiB;IAiE/B;;OAEG;YACW,gBAAgB;IAyE9B;;OAEG;IACG,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;IA0EtD;;OAEG;IACG,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;IAsFpD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;OAEG;IACG,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;IA+DhD;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;IA8FnD;;OAEG;IACH,YAAY,IAAI,KAAK,CAAC;QAClB,MAAM,EAAE,UAAU,CAAA;QAClB,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;QAChC,YAAY,CAAC,EAAE,MAAM,CAAA;KACxB,CAAC;IA2CF;;OAEG;IACH,cAAc,IAAI,oBAAoB;CAmGzC"}
|
|
@@ -76,29 +76,24 @@ export class TilesetManager extends AssetsManager {
|
|
|
76
76
|
if (!req || !req.body) {
|
|
77
77
|
return {
|
|
78
78
|
status: 400,
|
|
79
|
-
content: JSON.stringify({
|
|
80
|
-
error: 'Invalid request: missing request body'
|
|
81
|
-
}),
|
|
79
|
+
content: JSON.stringify({ error: 'Invalid request: missing request body' }),
|
|
82
80
|
headers: { 'Content-Type': 'application/json' }
|
|
83
81
|
};
|
|
84
82
|
}
|
|
85
|
-
//
|
|
83
|
+
// Authenticate user
|
|
86
84
|
let userId;
|
|
87
85
|
if (AuthConfig.isAuthDisabled()) {
|
|
88
|
-
const
|
|
86
|
+
const userRecord = await this.userService.findOrCreateUser({
|
|
89
87
|
id: AuthConfig.getAnonymousUserId(),
|
|
90
88
|
roles: []
|
|
91
|
-
};
|
|
92
|
-
const userRecord = await this.userService.findOrCreateUser(anonymousUser);
|
|
89
|
+
});
|
|
93
90
|
userId = userRecord.id;
|
|
94
91
|
}
|
|
95
92
|
else {
|
|
96
93
|
if (!ApisixAuthParser.hasValidAuth(req.headers || {})) {
|
|
97
94
|
return {
|
|
98
95
|
status: 401,
|
|
99
|
-
content: JSON.stringify({
|
|
100
|
-
error: 'Authentication required'
|
|
101
|
-
}),
|
|
96
|
+
content: JSON.stringify({ error: 'Authentication required' }),
|
|
102
97
|
headers: { 'Content-Type': 'application/json' }
|
|
103
98
|
};
|
|
104
99
|
}
|
|
@@ -106,9 +101,7 @@ export class TilesetManager extends AssetsManager {
|
|
|
106
101
|
if (!authUser) {
|
|
107
102
|
return {
|
|
108
103
|
status: 401,
|
|
109
|
-
content: JSON.stringify({
|
|
110
|
-
error: 'Invalid authentication headers'
|
|
111
|
-
}),
|
|
104
|
+
content: JSON.stringify({ error: 'Invalid authentication headers' }),
|
|
112
105
|
headers: { 'Content-Type': 'application/json' }
|
|
113
106
|
};
|
|
114
107
|
}
|
|
@@ -116,9 +109,7 @@ export class TilesetManager extends AssetsManager {
|
|
|
116
109
|
if (!userRecord.id) {
|
|
117
110
|
return {
|
|
118
111
|
status: 500,
|
|
119
|
-
content: JSON.stringify({
|
|
120
|
-
error: 'Failed to retrieve user information'
|
|
121
|
-
}),
|
|
112
|
+
content: JSON.stringify({ error: 'Failed to retrieve user information' }),
|
|
122
113
|
headers: { 'Content-Type': 'application/json' }
|
|
123
114
|
};
|
|
124
115
|
}
|
|
@@ -128,137 +119,107 @@ export class TilesetManager extends AssetsManager {
|
|
|
128
119
|
const filePath = req.file?.path;
|
|
129
120
|
const fileBuffer = req.file?.buffer;
|
|
130
121
|
const filename = req.file?.originalname || req.body.filename;
|
|
131
|
-
//
|
|
122
|
+
// Cleanup temp file and return error response
|
|
123
|
+
const cleanupAndReturn = async (status, error) => {
|
|
124
|
+
if (filePath)
|
|
125
|
+
await fs.unlink(filePath).catch(() => { });
|
|
126
|
+
return { status, content: JSON.stringify({ error }), headers: { 'Content-Type': 'application/json' } };
|
|
127
|
+
};
|
|
132
128
|
if (!filePath && !fileBuffer) {
|
|
133
129
|
return {
|
|
134
130
|
status: 400,
|
|
135
|
-
content: JSON.stringify({
|
|
136
|
-
error: 'Missing required fields: ZIP file'
|
|
137
|
-
}),
|
|
138
|
-
headers: { 'Content-Type': 'application/json' }
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
if (!description) {
|
|
142
|
-
return {
|
|
143
|
-
status: 400,
|
|
144
|
-
content: JSON.stringify({
|
|
145
|
-
error: 'Missing required fields: description'
|
|
146
|
-
}),
|
|
147
|
-
headers: { 'Content-Type': 'application/json' }
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
if (!filename) {
|
|
151
|
-
return {
|
|
152
|
-
status: 400,
|
|
153
|
-
content: JSON.stringify({
|
|
154
|
-
error: 'Filename could not be determined from uploaded file'
|
|
155
|
-
}),
|
|
156
|
-
headers: { 'Content-Type': 'application/json' }
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
// Validate ZIP file extension
|
|
160
|
-
if (!filename.toLowerCase().endsWith('.zip')) {
|
|
161
|
-
return {
|
|
162
|
-
status: 400,
|
|
163
|
-
content: JSON.stringify({
|
|
164
|
-
error: 'Invalid file extension. Expected: .zip'
|
|
165
|
-
}),
|
|
131
|
+
content: JSON.stringify({ error: 'Missing required fields: ZIP file' }),
|
|
166
132
|
headers: { 'Content-Type': 'application/json' }
|
|
167
133
|
};
|
|
168
134
|
}
|
|
135
|
+
if (!description)
|
|
136
|
+
return cleanupAndReturn(400, 'Missing required fields: description');
|
|
137
|
+
if (!filename)
|
|
138
|
+
return cleanupAndReturn(400, 'Filename could not be determined from uploaded file');
|
|
139
|
+
if (!filename.toLowerCase().endsWith('.zip'))
|
|
140
|
+
return cleanupAndReturn(400, 'Invalid file extension. Expected: .zip');
|
|
169
141
|
const config = this.getConfiguration();
|
|
170
|
-
//
|
|
171
|
-
console.log(`[TilesetManager] Upload: queue=${!!this.uploadQueue}, filePath=${!!filePath}, fileBuffer=${!!fileBuffer}`);
|
|
172
|
-
// ASYNC MODE: Queue job for background processing (requires disk storage)
|
|
142
|
+
// Route to async or sync handler based on queue availability
|
|
173
143
|
if (this.uploadQueue && filePath) {
|
|
174
|
-
console.log(`[TilesetManager] Using ASYNC mode for ${filename}`);
|
|
175
144
|
return this.handleAsyncUpload(req, userId, filePath, filename, description, config);
|
|
176
145
|
}
|
|
177
|
-
// SYNC MODE: Process immediately (fallback or memory buffer)
|
|
178
|
-
console.log(`[TilesetManager] Using SYNC mode for ${filename}`);
|
|
179
146
|
return this.handleSyncUpload(req, userId, filePath, fileBuffer, filename, description, config);
|
|
180
147
|
}
|
|
181
148
|
catch (error) {
|
|
149
|
+
if (req.file?.path)
|
|
150
|
+
await fs.unlink(req.file.path).catch(() => { });
|
|
182
151
|
return {
|
|
183
152
|
status: 500,
|
|
184
|
-
content: JSON.stringify({
|
|
185
|
-
error: error instanceof Error ? error.message : 'Unknown error'
|
|
186
|
-
}),
|
|
153
|
+
content: JSON.stringify({ error: error instanceof Error ? error.message : 'Unknown error' }),
|
|
187
154
|
headers: { 'Content-Type': 'application/json' }
|
|
188
155
|
};
|
|
189
156
|
}
|
|
190
157
|
}
|
|
191
158
|
/**
|
|
192
|
-
*
|
|
193
|
-
* @private
|
|
159
|
+
* Queue upload for background processing. Returns HTTP 202 immediately.
|
|
194
160
|
*/
|
|
195
161
|
async handleAsyncUpload(req, userId, filePath, filename, description, config) {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
162
|
+
let recordId = null;
|
|
163
|
+
try {
|
|
164
|
+
// Create pending record - will be updated by worker when complete
|
|
165
|
+
const metadata = {
|
|
166
|
+
name: config.name,
|
|
167
|
+
type: 'application/json',
|
|
168
|
+
url: '',
|
|
169
|
+
date: new Date(),
|
|
170
|
+
description,
|
|
171
|
+
source: req.body.source || '',
|
|
172
|
+
owner_id: userId,
|
|
173
|
+
filename,
|
|
174
|
+
is_public: req.body.is_public !== undefined ? Boolean(req.body.is_public) : true,
|
|
175
|
+
upload_status: 'pending'
|
|
176
|
+
};
|
|
177
|
+
const savedRecord = await this.db.save(metadata);
|
|
178
|
+
recordId = savedRecord.id;
|
|
179
|
+
const jobData = {
|
|
180
|
+
type: 'tileset',
|
|
181
|
+
recordId,
|
|
182
|
+
tempFilePath: filePath,
|
|
183
|
+
componentName: config.name,
|
|
184
|
+
userId,
|
|
185
|
+
filename,
|
|
186
|
+
description
|
|
187
|
+
};
|
|
188
|
+
const job = await this.uploadQueue?.add(`tileset-${recordId}`, jobData, {
|
|
189
|
+
jobId: `tileset-upload-${recordId}`
|
|
190
|
+
});
|
|
191
|
+
if (!job)
|
|
192
|
+
throw new Error('Failed to queue upload job');
|
|
193
|
+
await this.db.updateById(config.name, recordId, { upload_job_id: job.id });
|
|
194
|
+
return {
|
|
195
|
+
status: 202,
|
|
196
|
+
content: JSON.stringify({
|
|
197
|
+
message: 'Tileset upload accepted, processing in background',
|
|
198
|
+
id: recordId,
|
|
199
|
+
job_id: job.id,
|
|
200
|
+
status: 'pending',
|
|
201
|
+
status_url: `/${config.endpoint}/${recordId}/status`
|
|
202
|
+
}),
|
|
203
|
+
headers: { 'Content-Type': 'application/json' }
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
catch (error) {
|
|
207
|
+
// Cleanup on failure: remove DB record and temp file
|
|
208
|
+
if (recordId !== null)
|
|
209
|
+
await this.db.delete(String(recordId), config.name).catch(() => { });
|
|
210
|
+
await fs.unlink(filePath).catch(() => { });
|
|
211
|
+
throw error;
|
|
228
212
|
}
|
|
229
|
-
// Update record with job ID
|
|
230
|
-
await this.db.updateById(config.name, recordId, {
|
|
231
|
-
upload_job_id: job.id
|
|
232
|
-
});
|
|
233
|
-
return {
|
|
234
|
-
status: 202, // Accepted - processing started
|
|
235
|
-
content: JSON.stringify({
|
|
236
|
-
message: 'Tileset upload accepted, processing in background',
|
|
237
|
-
id: recordId,
|
|
238
|
-
job_id: job.id,
|
|
239
|
-
status: 'pending',
|
|
240
|
-
status_url: `/${config.endpoint}/${recordId}/status`
|
|
241
|
-
}),
|
|
242
|
-
headers: { 'Content-Type': 'application/json' }
|
|
243
|
-
};
|
|
244
213
|
}
|
|
245
214
|
/**
|
|
246
|
-
*
|
|
247
|
-
* @private
|
|
215
|
+
* Process upload synchronously (fallback when queue unavailable).
|
|
248
216
|
*/
|
|
249
217
|
async handleSyncUpload(req, userId, filePath, fileBuffer, filename, description, config) {
|
|
250
|
-
// Read ZIP file content
|
|
251
218
|
let zipBuffer;
|
|
252
219
|
try {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
}
|
|
256
|
-
else if (filePath) {
|
|
257
|
-
zipBuffer = await fs.readFile(filePath);
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
220
|
+
zipBuffer = fileBuffer || (filePath ? await fs.readFile(filePath) : null);
|
|
221
|
+
if (!zipBuffer)
|
|
260
222
|
throw new Error('No file data available');
|
|
261
|
-
}
|
|
262
223
|
}
|
|
263
224
|
catch (error) {
|
|
264
225
|
return {
|
|
@@ -271,49 +232,33 @@ export class TilesetManager extends AssetsManager {
|
|
|
271
232
|
}
|
|
272
233
|
try {
|
|
273
234
|
const now = new Date();
|
|
274
|
-
|
|
275
|
-
const tilesetId = now.getTime().toString();
|
|
276
|
-
// Base path for storing extracted files: componentName/tilesetId
|
|
277
|
-
const basePath = `${config.name}/${tilesetId}`;
|
|
278
|
-
// Extract ZIP and store all files individually
|
|
235
|
+
const basePath = `${config.name}/${now.getTime()}`;
|
|
279
236
|
const extractResult = await extractAndStoreArchive(zipBuffer, this.storage, basePath);
|
|
280
|
-
// Validate that we found a tileset.json
|
|
281
237
|
if (!extractResult.root_file) {
|
|
282
|
-
// Clean up stored files if no tileset.json found using batch delete
|
|
283
238
|
if (extractResult.files.length > 0) {
|
|
284
|
-
|
|
285
|
-
await this.storage.deleteBatch(filePaths);
|
|
239
|
+
await this.storage.deleteBatch(extractResult.files.map(f => f.path));
|
|
286
240
|
}
|
|
287
241
|
return {
|
|
288
242
|
status: 400,
|
|
289
|
-
content: JSON.stringify({
|
|
290
|
-
error: 'Invalid tileset: no tileset.json found in the ZIP archive'
|
|
291
|
-
}),
|
|
243
|
+
content: JSON.stringify({ error: 'Invalid tileset: no tileset.json found in the ZIP archive' }),
|
|
292
244
|
headers: { 'Content-Type': 'application/json' }
|
|
293
245
|
};
|
|
294
246
|
}
|
|
295
|
-
// Create metadata with file_index
|
|
296
|
-
// url stores the base path for all extracted files
|
|
297
247
|
const metadata = {
|
|
298
248
|
name: config.name,
|
|
299
|
-
type: 'application/json',
|
|
300
|
-
url: basePath,
|
|
249
|
+
type: 'application/json',
|
|
250
|
+
url: basePath,
|
|
301
251
|
date: now,
|
|
302
252
|
description,
|
|
303
253
|
source: req.body.source || '',
|
|
304
254
|
owner_id: userId,
|
|
305
|
-
filename
|
|
255
|
+
filename,
|
|
306
256
|
is_public: req.body.is_public !== undefined ? Boolean(req.body.is_public) : true,
|
|
307
|
-
file_index: {
|
|
308
|
-
files: extractResult.files,
|
|
309
|
-
root_file: extractResult.root_file
|
|
310
|
-
}
|
|
257
|
+
file_index: { files: extractResult.files, root_file: extractResult.root_file }
|
|
311
258
|
};
|
|
312
259
|
const savedRecord = await this.db.save(metadata);
|
|
313
|
-
|
|
314
|
-
if (filePath) {
|
|
260
|
+
if (filePath)
|
|
315
261
|
await fs.unlink(filePath).catch(() => { });
|
|
316
|
-
}
|
|
317
262
|
return {
|
|
318
263
|
status: 200,
|
|
319
264
|
content: JSON.stringify({
|
|
@@ -327,15 +272,13 @@ export class TilesetManager extends AssetsManager {
|
|
|
327
272
|
};
|
|
328
273
|
}
|
|
329
274
|
catch (error) {
|
|
330
|
-
|
|
331
|
-
if (filePath) {
|
|
275
|
+
if (filePath)
|
|
332
276
|
await fs.unlink(filePath).catch(() => { });
|
|
333
|
-
}
|
|
334
277
|
throw error;
|
|
335
278
|
}
|
|
336
279
|
}
|
|
337
280
|
/**
|
|
338
|
-
* Get
|
|
281
|
+
* Get upload status for polling. Returns: pending | processing | completed | failed
|
|
339
282
|
*/
|
|
340
283
|
async handleGetStatus(req) {
|
|
341
284
|
try {
|
|
@@ -357,22 +300,34 @@ export class TilesetManager extends AssetsManager {
|
|
|
357
300
|
}
|
|
358
301
|
const config = this.getConfiguration();
|
|
359
302
|
const record = asset;
|
|
360
|
-
|
|
361
|
-
if
|
|
362
|
-
|
|
363
|
-
|
|
303
|
+
const fileIndex = record.file_index;
|
|
304
|
+
// Completed if upload_status says so, or legacy sync upload with file_index
|
|
305
|
+
const isCompleted = record.upload_status === 'completed' ||
|
|
306
|
+
(!record.upload_status && fileIndex?.files && fileIndex.files.length > 0);
|
|
307
|
+
if (isCompleted) {
|
|
364
308
|
return {
|
|
365
309
|
status: 200,
|
|
366
310
|
content: JSON.stringify({
|
|
367
311
|
id: record.id,
|
|
368
312
|
status: 'completed',
|
|
369
|
-
tileset_url: `/${config.endpoint}/${record.id}/files/${
|
|
313
|
+
tileset_url: `/${config.endpoint}/${record.id}/files/${fileIndex?.root_file || 'tileset.json'}`,
|
|
370
314
|
file_count: fileIndex?.files?.length || 0
|
|
371
315
|
}),
|
|
372
316
|
headers: { 'Content-Type': 'application/json' }
|
|
373
317
|
};
|
|
374
318
|
}
|
|
375
|
-
//
|
|
319
|
+
// Broken record: no status and no files
|
|
320
|
+
if (!record.upload_status) {
|
|
321
|
+
return {
|
|
322
|
+
status: 200,
|
|
323
|
+
content: JSON.stringify({
|
|
324
|
+
id: record.id,
|
|
325
|
+
status: 'failed',
|
|
326
|
+
error: 'Upload incomplete - no files found'
|
|
327
|
+
}),
|
|
328
|
+
headers: { 'Content-Type': 'application/json' }
|
|
329
|
+
};
|
|
330
|
+
}
|
|
376
331
|
return {
|
|
377
332
|
status: 200,
|
|
378
333
|
content: JSON.stringify({
|
|
@@ -387,105 +342,72 @@ export class TilesetManager extends AssetsManager {
|
|
|
387
342
|
catch (error) {
|
|
388
343
|
return {
|
|
389
344
|
status: 500,
|
|
390
|
-
content: JSON.stringify({
|
|
391
|
-
error: error instanceof Error ? error.message : 'Unknown error'
|
|
392
|
-
}),
|
|
345
|
+
content: JSON.stringify({ error: error instanceof Error ? error.message : 'Unknown error' }),
|
|
393
346
|
headers: { 'Content-Type': 'application/json' }
|
|
394
347
|
};
|
|
395
348
|
}
|
|
396
349
|
}
|
|
397
350
|
/**
|
|
398
|
-
* Serve
|
|
399
|
-
*
|
|
400
|
-
* This endpoint allows Cesium to load tileset.json and all referenced files
|
|
401
|
-
* (tiles, textures, etc.) using relative paths.
|
|
402
|
-
*
|
|
403
|
-
* @param req - HTTP request with params.id and params['0'] (file path)
|
|
404
|
-
* @returns DataResponse with file content
|
|
351
|
+
* Serve extracted tileset file (tileset.json, .b3dm, textures, etc.)
|
|
405
352
|
*/
|
|
406
353
|
async handleGetFile(req) {
|
|
407
354
|
try {
|
|
408
355
|
const { id } = req.params || {};
|
|
409
|
-
//
|
|
410
|
-
// - Express 4.x: params[0] or params['0']
|
|
411
|
-
// - Express 5.x / ultimate-express: params['*'] or via URL parsing
|
|
356
|
+
// Extract file path from wildcard param (Express 4.x/5.x compatibility)
|
|
412
357
|
let filePath = req.params[0] || req.params['0'] || req.params['*'] || req.params.path || req.params['*0'];
|
|
413
|
-
// Fallback: extract from URL if params didn't capture it
|
|
414
358
|
if (!filePath && req.url) {
|
|
415
359
|
const match = req.url.match(/\/files\/(.+)$/);
|
|
416
|
-
if (match)
|
|
360
|
+
if (match)
|
|
417
361
|
filePath = decodeURIComponent(match[1]);
|
|
418
|
-
}
|
|
419
362
|
}
|
|
420
|
-
// Another fallback: use originalUrl
|
|
421
363
|
if (!filePath && req.originalUrl) {
|
|
422
364
|
const match = req.originalUrl.match(/\/files\/(.+)$/);
|
|
423
|
-
if (match)
|
|
365
|
+
if (match)
|
|
424
366
|
filePath = decodeURIComponent(match[1]);
|
|
425
|
-
}
|
|
426
367
|
}
|
|
427
|
-
if (!id)
|
|
368
|
+
if (!id)
|
|
428
369
|
return {
|
|
429
370
|
status: 400,
|
|
430
371
|
content: JSON.stringify({ error: 'Asset ID is required' }),
|
|
431
372
|
headers: { 'Content-Type': 'application/json' }
|
|
432
373
|
};
|
|
433
|
-
|
|
434
|
-
if (!filePath) {
|
|
374
|
+
if (!filePath)
|
|
435
375
|
return {
|
|
436
376
|
status: 400,
|
|
437
377
|
content: JSON.stringify({ error: 'File path is required' }),
|
|
438
378
|
headers: { 'Content-Type': 'application/json' }
|
|
439
379
|
};
|
|
440
|
-
}
|
|
441
|
-
// Get asset metadata
|
|
442
380
|
const asset = await this.getAssetById(id);
|
|
443
|
-
if (!asset) {
|
|
444
|
-
return {
|
|
445
|
-
status: 404,
|
|
446
|
-
content: JSON.stringify({ error: 'Tileset not found' }),
|
|
447
|
-
headers: { 'Content-Type': 'application/json' }
|
|
448
|
-
};
|
|
449
|
-
}
|
|
450
|
-
// Verify this asset belongs to our component
|
|
451
381
|
const config = this.getConfiguration();
|
|
452
|
-
if (asset.name !== config.name) {
|
|
382
|
+
if (!asset || asset.name !== config.name) {
|
|
453
383
|
return {
|
|
454
384
|
status: 404,
|
|
455
385
|
content: JSON.stringify({ error: 'Tileset not found' }),
|
|
456
386
|
headers: { 'Content-Type': 'application/json' }
|
|
457
387
|
};
|
|
458
388
|
}
|
|
459
|
-
// Check access
|
|
460
|
-
if (!asset.is_public) {
|
|
461
|
-
if (ApisixAuthParser.
|
|
462
|
-
// Admin can access everything
|
|
463
|
-
}
|
|
464
|
-
else if (!ApisixAuthParser.hasValidAuth(req.headers || {})) {
|
|
389
|
+
// Check access for private assets
|
|
390
|
+
if (!asset.is_public && !ApisixAuthParser.isAdmin(req.headers || {})) {
|
|
391
|
+
if (!ApisixAuthParser.hasValidAuth(req.headers || {})) {
|
|
465
392
|
return {
|
|
466
393
|
status: 401,
|
|
467
394
|
content: JSON.stringify({ error: 'Authentication required for private assets' }),
|
|
468
395
|
headers: { 'Content-Type': 'application/json' }
|
|
469
396
|
};
|
|
470
397
|
}
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
};
|
|
481
|
-
}
|
|
398
|
+
const authUser = ApisixAuthParser.parseAuthHeaders(req.headers || {});
|
|
399
|
+
if (authUser) {
|
|
400
|
+
const userRecord = await this.userService.findOrCreateUser(authUser);
|
|
401
|
+
if (!userRecord.id || asset.owner_id !== userRecord.id) {
|
|
402
|
+
return {
|
|
403
|
+
status: 403,
|
|
404
|
+
content: JSON.stringify({ error: 'This asset is private' }),
|
|
405
|
+
headers: { 'Content-Type': 'application/json' }
|
|
406
|
+
};
|
|
482
407
|
}
|
|
483
408
|
}
|
|
484
409
|
}
|
|
485
|
-
// Build storage path using asset.url as base path
|
|
486
|
-
// asset.url contains the base path (e.g., 'tilesets_manager/1733064000000')
|
|
487
410
|
const storagePath = `${asset.url}/${filePath}`;
|
|
488
|
-
// Retrieve file from storage
|
|
489
411
|
let fileContent;
|
|
490
412
|
try {
|
|
491
413
|
fileContent = await this.storage.retrieve(storagePath);
|
|
@@ -497,23 +419,16 @@ export class TilesetManager extends AssetsManager {
|
|
|
497
419
|
headers: { 'Content-Type': 'application/json' }
|
|
498
420
|
};
|
|
499
421
|
}
|
|
500
|
-
// Determine content type based on file extension
|
|
501
|
-
const contentType = this.getContentTypeForFile(filePath);
|
|
502
422
|
return {
|
|
503
423
|
status: 200,
|
|
504
424
|
content: fileContent,
|
|
505
|
-
headers: {
|
|
506
|
-
'Content-Type': contentType,
|
|
507
|
-
'Access-Control-Allow-Origin': '*'
|
|
508
|
-
}
|
|
425
|
+
headers: { 'Content-Type': this.getContentTypeForFile(filePath), 'Access-Control-Allow-Origin': '*' }
|
|
509
426
|
};
|
|
510
427
|
}
|
|
511
428
|
catch (error) {
|
|
512
429
|
return {
|
|
513
430
|
status: 500,
|
|
514
|
-
content: JSON.stringify({
|
|
515
|
-
error: error instanceof Error ? error.message : 'Unknown error'
|
|
516
|
-
}),
|
|
431
|
+
content: JSON.stringify({ error: error instanceof Error ? error.message : 'Unknown error' }),
|
|
517
432
|
headers: { 'Content-Type': 'application/json' }
|
|
518
433
|
};
|
|
519
434
|
}
|
|
@@ -599,18 +514,17 @@ export class TilesetManager extends AssetsManager {
|
|
|
599
514
|
}
|
|
600
515
|
}
|
|
601
516
|
/**
|
|
602
|
-
*
|
|
517
|
+
* Delete tileset and all extracted files from storage.
|
|
603
518
|
*/
|
|
604
519
|
async handleDelete(req) {
|
|
605
520
|
try {
|
|
606
|
-
//
|
|
521
|
+
// Authenticate user
|
|
607
522
|
let userId;
|
|
608
523
|
if (AuthConfig.isAuthDisabled()) {
|
|
609
|
-
const
|
|
524
|
+
const userRecord = await this.userService.findOrCreateUser({
|
|
610
525
|
id: AuthConfig.getAnonymousUserId(),
|
|
611
526
|
roles: []
|
|
612
|
-
};
|
|
613
|
-
const userRecord = await this.userService.findOrCreateUser(anonymousUser);
|
|
527
|
+
});
|
|
614
528
|
userId = userRecord.id;
|
|
615
529
|
}
|
|
616
530
|
else {
|
|
@@ -640,23 +554,20 @@ export class TilesetManager extends AssetsManager {
|
|
|
640
554
|
userId = userRecord.id;
|
|
641
555
|
}
|
|
642
556
|
const { id } = req.params || {};
|
|
643
|
-
if (!id)
|
|
557
|
+
if (!id)
|
|
644
558
|
return {
|
|
645
559
|
status: 400,
|
|
646
560
|
content: JSON.stringify({ error: 'Asset ID is required' }),
|
|
647
561
|
headers: { 'Content-Type': 'application/json' }
|
|
648
562
|
};
|
|
649
|
-
}
|
|
650
|
-
// Get asset metadata
|
|
651
563
|
const asset = await this.getAssetById(id);
|
|
652
|
-
if (!asset)
|
|
564
|
+
if (!asset)
|
|
653
565
|
return {
|
|
654
566
|
status: 404,
|
|
655
567
|
content: JSON.stringify({ error: 'Tileset not found' }),
|
|
656
568
|
headers: { 'Content-Type': 'application/json' }
|
|
657
569
|
};
|
|
658
|
-
|
|
659
|
-
// Check ownership (admins can delete any asset)
|
|
570
|
+
// Check ownership (admins can delete any)
|
|
660
571
|
const isAdmin = ApisixAuthParser.isAdmin(req.headers || {});
|
|
661
572
|
if (!isAdmin && asset.owner_id !== null && asset.owner_id !== userId) {
|
|
662
573
|
return {
|
|
@@ -665,13 +576,20 @@ export class TilesetManager extends AssetsManager {
|
|
|
665
576
|
headers: { 'Content-Type': 'application/json' }
|
|
666
577
|
};
|
|
667
578
|
}
|
|
668
|
-
//
|
|
579
|
+
// Block deletion while upload in progress to prevent orphan files
|
|
580
|
+
const record = asset;
|
|
581
|
+
if (record.upload_status === 'pending' || record.upload_status === 'processing') {
|
|
582
|
+
return {
|
|
583
|
+
status: 409,
|
|
584
|
+
content: JSON.stringify({ error: 'Cannot delete tileset while upload is in progress' }),
|
|
585
|
+
headers: { 'Content-Type': 'application/json' }
|
|
586
|
+
};
|
|
587
|
+
}
|
|
588
|
+
// Delete all files from storage
|
|
669
589
|
const fileIndex = asset.file_index;
|
|
670
|
-
if (fileIndex?.files
|
|
671
|
-
|
|
672
|
-
await this.storage.deleteBatch(filePaths);
|
|
590
|
+
if (fileIndex?.files?.length) {
|
|
591
|
+
await this.storage.deleteBatch(fileIndex.files.map(f => f.path));
|
|
673
592
|
}
|
|
674
|
-
// Delete database record
|
|
675
593
|
await this.deleteAssetById(id);
|
|
676
594
|
return {
|
|
677
595
|
status: 200,
|
|
@@ -682,9 +600,7 @@ export class TilesetManager extends AssetsManager {
|
|
|
682
600
|
catch (error) {
|
|
683
601
|
return {
|
|
684
602
|
status: 500,
|
|
685
|
-
content: JSON.stringify({
|
|
686
|
-
error: error instanceof Error ? error.message : 'Unknown error'
|
|
687
|
-
}),
|
|
603
|
+
content: JSON.stringify({ error: error instanceof Error ? error.message : 'Unknown error' }),
|
|
688
604
|
headers: { 'Content-Type': 'application/json' }
|
|
689
605
|
};
|
|
690
606
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tileset_manager.js","sourceRoot":"","sources":["../../src/components/tileset_manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tileset_manager.js","sourceRoot":"","sources":["../../src/components/tileset_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue_manager.js","sourceRoot":"","sources":["../../src/engine/queue_manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAqB9B;;GAEG;AACH,MAAM,cAAc,GAAG;IACnB,KAAK,EAAE;QACH,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,IAAI;QACV,oBAAoB,EAAE,IAAI;QAC1B,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,EAAE,IAAI,CAAC;KAC/D;IACD,UAAU,EAAE;QACR,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,GAAG;QAClB,UAAU,EAAE,EAAE;KACjB;IACD,UAAU,EAAE;QACR,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE,GAAG;KAClB;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;KACd;IACD,OAAO,EAAE;QACL,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"queue_manager.js","sourceRoot":"","sources":["../../src/engine/queue_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,66 +1,30 @@
|
|
|
1
1
|
import type { ConnectionOptions } from 'bullmq';
|
|
2
2
|
import type { StorageService } from '../storage/storage_service.js';
|
|
3
3
|
import type { DatabaseAdapter } from '../database/database_adapter.js';
|
|
4
|
-
/**
|
|
5
|
-
* Job data for tileset upload processing
|
|
6
|
-
*/
|
|
7
4
|
export interface TilesetUploadJobData {
|
|
8
5
|
type: 'tileset';
|
|
9
|
-
/** Database record ID (created with status 'pending') */
|
|
10
6
|
recordId: number;
|
|
11
|
-
/** Path to temporary ZIP file */
|
|
12
7
|
tempFilePath: string;
|
|
13
|
-
/** Component name (e.g., 'tilesets_manager') */
|
|
14
8
|
componentName: string;
|
|
15
|
-
/** User ID who uploaded */
|
|
16
9
|
userId: number;
|
|
17
|
-
/** Original filename */
|
|
18
10
|
filename: string;
|
|
19
|
-
/** Description */
|
|
20
11
|
description: string;
|
|
21
12
|
}
|
|
22
|
-
/**
|
|
23
|
-
* Generic upload job data (union type for future extension)
|
|
24
|
-
*/
|
|
25
13
|
export type UploadJobData = TilesetUploadJobData;
|
|
26
|
-
/**
|
|
27
|
-
* Upload job status stored in database
|
|
28
|
-
*/
|
|
29
14
|
export type UploadStatus = 'pending' | 'processing' | 'completed' | 'failed';
|
|
30
15
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* This processor handles long-running upload tasks that would otherwise
|
|
34
|
-
* timeout the HTTP request. Jobs are queued and processed in the background.
|
|
16
|
+
* Background worker for processing large file uploads (tileset extraction).
|
|
17
|
+
* Prevents HTTP timeout by queuing jobs and processing asynchronously.
|
|
35
18
|
*/
|
|
36
19
|
export declare class UploadProcessor {
|
|
37
20
|
private worker;
|
|
38
21
|
private storage;
|
|
39
22
|
private db;
|
|
40
23
|
constructor(storage: StorageService, db: DatabaseAdapter);
|
|
41
|
-
/**
|
|
42
|
-
* Start the upload processor worker
|
|
43
|
-
*/
|
|
44
24
|
start(connection: ConnectionOptions): void;
|
|
45
|
-
/**
|
|
46
|
-
* Stop the worker gracefully
|
|
47
|
-
*/
|
|
48
25
|
stop(): Promise<void>;
|
|
49
|
-
/**
|
|
50
|
-
* Process a single upload job
|
|
51
|
-
*/
|
|
52
26
|
private processJob;
|
|
53
|
-
/**
|
|
54
|
-
* Process tileset upload: extract ZIP and upload files to storage
|
|
55
|
-
*/
|
|
56
27
|
private processTilesetUpload;
|
|
57
|
-
/**
|
|
58
|
-
* Update record status in database
|
|
59
|
-
*/
|
|
60
28
|
private updateRecordStatus;
|
|
61
|
-
/**
|
|
62
|
-
* Update record with completion data
|
|
63
|
-
*/
|
|
64
|
-
private updateRecordComplete;
|
|
65
29
|
}
|
|
66
30
|
//# sourceMappingURL=upload_processor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload_processor.d.ts","sourceRoot":"","sources":["../../src/engine/upload_processor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upload_processor.d.ts","sourceRoot":"","sources":["../../src/engine/upload_processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAItE,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,SAAS,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,aAAa,GAAG,oBAAoB,CAAA;AAChD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAA;AAE5E;;;GAGG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,EAAE,CAAiB;gBAEf,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,eAAe;IAKxD,KAAK,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAWpC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAOb,UAAU;YAQV,oBAAoB;YAyCpB,kBAAkB;CAGnC"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
// src/engine/upload_processor.ts
|
|
2
1
|
import { Worker } from 'bullmq';
|
|
3
2
|
import { extractAndStoreArchive } from '../utils/zip_utils.js';
|
|
4
3
|
import fs from 'fs/promises';
|
|
5
4
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* This processor handles long-running upload tasks that would otherwise
|
|
9
|
-
* timeout the HTTP request. Jobs are queued and processed in the background.
|
|
5
|
+
* Background worker for processing large file uploads (tileset extraction).
|
|
6
|
+
* Prevents HTTP timeout by queuing jobs and processing asynchronously.
|
|
10
7
|
*/
|
|
11
8
|
export class UploadProcessor {
|
|
12
9
|
constructor(storage, db) {
|
|
@@ -14,129 +11,66 @@ export class UploadProcessor {
|
|
|
14
11
|
this.storage = storage;
|
|
15
12
|
this.db = db;
|
|
16
13
|
}
|
|
17
|
-
/**
|
|
18
|
-
* Start the upload processor worker
|
|
19
|
-
*/
|
|
20
14
|
start(connection) {
|
|
21
|
-
this.worker = new Worker('dt-uploads', async (job) => {
|
|
22
|
-
return this.processJob(job);
|
|
23
|
-
}, {
|
|
15
|
+
this.worker = new Worker('dt-uploads', async (job) => this.processJob(job), {
|
|
24
16
|
connection,
|
|
25
|
-
concurrency: 2,
|
|
26
|
-
limiter: {
|
|
27
|
-
max: 5,
|
|
28
|
-
duration: 60000 // Max 5 jobs per minute to avoid overwhelming OVH
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
this.worker.on('completed', job => {
|
|
32
|
-
console.log(`[UploadProcessor] Job ${job.id} completed`);
|
|
33
|
-
});
|
|
34
|
-
this.worker.on('failed', (job, err) => {
|
|
35
|
-
console.error(`[UploadProcessor] Job ${job?.id} failed:`, err.message);
|
|
36
|
-
});
|
|
37
|
-
this.worker.on('progress', (job, progress) => {
|
|
38
|
-
console.log(`[UploadProcessor] Job ${job.id} progress: ${progress}%`);
|
|
17
|
+
concurrency: 2,
|
|
18
|
+
limiter: { max: 5, duration: 60000 }
|
|
39
19
|
});
|
|
20
|
+
this.worker.on('completed', job => console.log(`[UploadProcessor] Job ${job.id} completed`));
|
|
21
|
+
this.worker.on('failed', (job, err) => console.error(`[UploadProcessor] Job ${job?.id} failed:`, err.message));
|
|
40
22
|
}
|
|
41
|
-
/**
|
|
42
|
-
* Stop the worker gracefully
|
|
43
|
-
*/
|
|
44
23
|
async stop() {
|
|
45
24
|
if (this.worker) {
|
|
46
25
|
await this.worker.close();
|
|
47
26
|
this.worker = null;
|
|
48
27
|
}
|
|
49
28
|
}
|
|
50
|
-
/**
|
|
51
|
-
* Process a single upload job
|
|
52
|
-
*/
|
|
53
29
|
async processJob(job) {
|
|
54
|
-
|
|
55
|
-
if (data.type === 'tileset') {
|
|
30
|
+
if (job.data.type === 'tileset') {
|
|
56
31
|
await this.processTilesetUpload(job);
|
|
57
32
|
}
|
|
58
33
|
else {
|
|
59
|
-
throw new Error(`Unknown upload job type: ${data.type}`);
|
|
34
|
+
throw new Error(`Unknown upload job type: ${job.data.type}`);
|
|
60
35
|
}
|
|
61
36
|
}
|
|
62
|
-
/**
|
|
63
|
-
* Process tileset upload: extract ZIP and upload files to storage
|
|
64
|
-
*/
|
|
65
37
|
async processTilesetUpload(job) {
|
|
66
38
|
const { recordId, tempFilePath, componentName } = job.data;
|
|
67
39
|
try {
|
|
68
|
-
// Update status to processing
|
|
69
40
|
await this.updateRecordStatus(recordId, componentName, 'processing');
|
|
70
41
|
await job.updateProgress(10);
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
zipBuffer = await fs.readFile(tempFilePath);
|
|
75
|
-
}
|
|
76
|
-
catch (error) {
|
|
77
|
-
throw new Error(`Failed to read temp file: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
78
|
-
}
|
|
42
|
+
const zipBuffer = await fs.readFile(tempFilePath).catch(err => {
|
|
43
|
+
throw new Error(`Failed to read temp file: ${err.message}`);
|
|
44
|
+
});
|
|
79
45
|
await job.updateProgress(20);
|
|
80
|
-
|
|
81
|
-
const tilesetId = Date.now().toString();
|
|
82
|
-
const basePath = `${componentName}/${tilesetId}`;
|
|
83
|
-
// Extract and store all files
|
|
46
|
+
const basePath = `${componentName}/${Date.now()}`;
|
|
84
47
|
const extractResult = await extractAndStoreArchive(zipBuffer, this.storage, basePath);
|
|
85
48
|
await job.updateProgress(80);
|
|
86
|
-
// Validate tileset.json was found
|
|
87
49
|
if (!extractResult.root_file) {
|
|
88
|
-
// Clean up stored files using batch delete
|
|
89
50
|
if (extractResult.files.length > 0) {
|
|
90
|
-
|
|
91
|
-
await this.storage.deleteBatch(filePaths);
|
|
51
|
+
await this.storage.deleteBatch(extractResult.files.map(f => f.path));
|
|
92
52
|
}
|
|
93
53
|
throw new Error('Invalid tileset: no tileset.json found in the ZIP archive');
|
|
94
54
|
}
|
|
95
|
-
|
|
96
|
-
await this.updateRecordComplete(recordId, componentName, {
|
|
55
|
+
await this.db.updateById(componentName, recordId, {
|
|
97
56
|
url: basePath,
|
|
98
|
-
file_index: {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
},
|
|
102
|
-
status: 'completed'
|
|
57
|
+
file_index: { files: extractResult.files, root_file: extractResult.root_file },
|
|
58
|
+
upload_status: 'completed',
|
|
59
|
+
updated_at: new Date()
|
|
103
60
|
});
|
|
104
61
|
await job.updateProgress(90);
|
|
105
|
-
// Clean up temp file
|
|
106
62
|
await fs.unlink(tempFilePath).catch(() => { });
|
|
107
63
|
await job.updateProgress(100);
|
|
108
64
|
}
|
|
109
65
|
catch (error) {
|
|
110
|
-
//
|
|
111
|
-
|
|
112
|
-
await this.updateRecordStatus(recordId, componentName, 'failed', errorMessage);
|
|
113
|
-
// Clean up temp file even on error
|
|
66
|
+
// Cleanup: delete DB record and temp file on failure
|
|
67
|
+
await this.db.delete(String(recordId), componentName).catch(() => { });
|
|
114
68
|
await fs.unlink(tempFilePath).catch(() => { });
|
|
115
69
|
throw error;
|
|
116
70
|
}
|
|
117
71
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
*/
|
|
121
|
-
async updateRecordStatus(id, tableName, status, errorMessage) {
|
|
122
|
-
const updateData = {
|
|
123
|
-
upload_status: status,
|
|
124
|
-
updated_at: new Date()
|
|
125
|
-
};
|
|
126
|
-
if (errorMessage) {
|
|
127
|
-
updateData.upload_error = errorMessage;
|
|
128
|
-
}
|
|
129
|
-
await this.db.updateById(tableName, id, updateData);
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Update record with completion data
|
|
133
|
-
*/
|
|
134
|
-
async updateRecordComplete(id, tableName, data) {
|
|
135
|
-
await this.db.updateById(tableName, id, {
|
|
136
|
-
...data,
|
|
137
|
-
upload_status: 'completed',
|
|
138
|
-
updated_at: new Date()
|
|
139
|
-
});
|
|
72
|
+
async updateRecordStatus(id, tableName, status) {
|
|
73
|
+
await this.db.updateById(tableName, id, { upload_status: status, updated_at: new Date() });
|
|
140
74
|
}
|
|
141
75
|
}
|
|
142
76
|
//# sourceMappingURL=upload_processor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload_processor.js","sourceRoot":"","sources":["../../src/engine/upload_processor.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"upload_processor.js","sourceRoot":"","sources":["../../src/engine/upload_processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -112,5 +112,21 @@ export interface DataRecord {
|
|
|
112
112
|
/** Main entry point file (e.g., 'tileset.json') */
|
|
113
113
|
root_file?: string;
|
|
114
114
|
};
|
|
115
|
+
/**
|
|
116
|
+
* Status of async upload processing.
|
|
117
|
+
* - 'pending': Job queued, waiting to start
|
|
118
|
+
* - 'processing': Job is running
|
|
119
|
+
* - 'completed': Job finished successfully
|
|
120
|
+
* - 'failed': Job failed with error
|
|
121
|
+
*/
|
|
122
|
+
upload_status?: 'pending' | 'processing' | 'completed' | 'failed' | null;
|
|
123
|
+
/**
|
|
124
|
+
* Error message if upload failed.
|
|
125
|
+
*/
|
|
126
|
+
upload_error?: string | null;
|
|
127
|
+
/**
|
|
128
|
+
* BullMQ job ID for tracking.
|
|
129
|
+
*/
|
|
130
|
+
upload_job_id?: string | null;
|
|
115
131
|
}
|
|
116
132
|
//# sourceMappingURL=data_record.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data_record.d.ts","sourceRoot":"","sources":["../../src/types/data_record.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,UAAU;IACvB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAA;IAEV,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IAEZ,6DAA6D;IAC7D,IAAI,EAAE,IAAI,CAAA;IAEV,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAA;IAEnB,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAA;IAEX;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAI3B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAExB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAInB;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CAAC,EAAE;QACT,6CAA6C;QAC7C,KAAK,EAAE,KAAK,CAAC;YACT,iCAAiC;YACjC,IAAI,EAAE,MAAM,CAAA;YACZ,wBAAwB;YACxB,IAAI,EAAE,MAAM,CAAA;YACZ,yBAAyB;YACzB,IAAI,CAAC,EAAE,MAAM,CAAA;SAChB,CAAC,CAAA;QACF,mDAAmD;QACnD,SAAS,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;
|
|
1
|
+
{"version":3,"file":"data_record.d.ts","sourceRoot":"","sources":["../../src/types/data_record.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,UAAU;IACvB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAA;IAEV,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IAEZ,6DAA6D;IAC7D,IAAI,EAAE,IAAI,CAAA;IAEV,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAA;IAEnB,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAA;IAEX;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAI3B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAExB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAInB;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CAAC,EAAE;QACT,6CAA6C;QAC7C,KAAK,EAAE,KAAK,CAAC;YACT,iCAAiC;YACjC,IAAI,EAAE,MAAM,CAAA;YACZ,wBAAwB;YACxB,IAAI,EAAE,MAAM,CAAA;YACZ,yBAAyB;YACzB,IAAI,CAAC,EAAE,MAAM,CAAA;SAChB,CAAC,CAAA;QACF,mDAAmD;QACnD,SAAS,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;IAID;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAA;IAExE;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAE5B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map_to_data_record.d.ts","sourceRoot":"","sources":["../../src/utils/map_to_data_record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAElE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,GAAG,EAAE,OAAO,EAAE,cAAc,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"map_to_data_record.d.ts","sourceRoot":"","sources":["../../src/utils/map_to_data_record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAElE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,GAAG,EAAE,OAAO,EAAE,cAAc,GAAG,UAAU,CA8B3F"}
|
|
@@ -24,7 +24,11 @@ export function mapToDataRecord(row, storage) {
|
|
|
24
24
|
? typeof row.file_index === 'string'
|
|
25
25
|
? JSON.parse(row.file_index)
|
|
26
26
|
: row.file_index
|
|
27
|
-
: undefined
|
|
27
|
+
: undefined,
|
|
28
|
+
// Async upload support
|
|
29
|
+
upload_status: row.upload_status || null,
|
|
30
|
+
upload_error: row.upload_error || null,
|
|
31
|
+
upload_job_id: row.upload_job_id || null
|
|
28
32
|
};
|
|
29
33
|
}
|
|
30
34
|
//# sourceMappingURL=map_to_data_record.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map_to_data_record.js","sourceRoot":"","sources":["../../src/utils/map_to_data_record.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAsB,EAAE,OAAuB;IAC3E,OAAO;QACH,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACxB,WAAW,EAAE,GAAG,CAAC,IAAI;QACrB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QAErC,2DAA2D;QAC3D,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,0FAA0F;QAC1F,mEAAmE;QACnE,SAAS,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QAEhG,+DAA+D;QAC/D,UAAU,EAAE,GAAG,CAAC,UAAU;YACtB,CAAC,CAAC,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;gBAChC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;gBAC5B,CAAC,CAAC,GAAG,CAAC,UAAU;YACpB,CAAC,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"map_to_data_record.js","sourceRoot":"","sources":["../../src/utils/map_to_data_record.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAsB,EAAE,OAAuB;IAC3E,OAAO;QACH,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACxB,WAAW,EAAE,GAAG,CAAC,IAAI;QACrB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QAErC,2DAA2D;QAC3D,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,0FAA0F;QAC1F,mEAAmE;QACnE,SAAS,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QAEhG,+DAA+D;QAC/D,UAAU,EAAE,GAAG,CAAC,UAAU;YACtB,CAAC,CAAC,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;gBAChC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;gBAC5B,CAAC,CAAC,GAAG,CAAC,UAAU;YACpB,CAAC,CAAC,SAAS;QAEf,uBAAuB;QACvB,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,IAAI;QACxC,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;QACtC,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,IAAI;KAC3C,CAAA;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip_utils.d.ts","sourceRoot":"","sources":["../../src/utils/zip_utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAEnE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,gDAAgD;IAChD,KAAK,EAAE,KAAK,CAAC;QACT,iCAAiC;QACjC,IAAI,EAAE,MAAM,CAAA;QACZ,2CAA2C;QAC3C,IAAI,EAAE,MAAM,CAAA;QACZ,yBAAyB;QACzB,IAAI,EAAE,MAAM,CAAA;KACf,CAAC,CAAA;IACF,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAA;CACrB;AAED;;;;GAIG;AACH,wBAAuB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAqB3G;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAQ3F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG;IAC7E,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,EAAE,CAAA;CACtB,CAkCA;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAezE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAiB1E;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,sBAAsB,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"zip_utils.d.ts","sourceRoot":"","sources":["../../src/utils/zip_utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAEnE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,gDAAgD;IAChD,KAAK,EAAE,KAAK,CAAC;QACT,iCAAiC;QACjC,IAAI,EAAE,MAAM,CAAA;QACZ,2CAA2C;QAC3C,IAAI,EAAE,MAAM,CAAA;QACZ,yBAAyB;QACzB,IAAI,EAAE,MAAM,CAAA;KACf,CAAC,CAAA;IACF,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAA;CACrB;AAED;;;;GAIG;AACH,wBAAuB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAqB3G;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAQ3F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG;IAC7E,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,EAAE,CAAA;CACtB,CAkCA;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAezE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAiB1E;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,sBAAsB,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC,CA8EjC"}
|
package/dist/utils/zip_utils.js
CHANGED
|
@@ -157,22 +157,46 @@ export async function extractAndStoreArchive(zipBuffer, storage, basePath) {
|
|
|
157
157
|
// Extract and store files in parallel (batched to avoid overwhelming OVH)
|
|
158
158
|
const PARALLEL_UPLOADS = 10;
|
|
159
159
|
const entries = Array.from(normalizedPaths.entries());
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
160
|
+
const totalFiles = entries.length;
|
|
161
|
+
console.log(`[ZipUtils] Extracting ${totalFiles} files to ${basePath}`);
|
|
162
|
+
try {
|
|
163
|
+
const totalBatches = Math.ceil(totalFiles / PARALLEL_UPLOADS);
|
|
164
|
+
// Log progress every 10% or at least every 10 batches
|
|
165
|
+
const logInterval = Math.max(1, Math.floor(totalBatches / 10));
|
|
166
|
+
for (let i = 0; i < entries.length; i += PARALLEL_UPLOADS) {
|
|
167
|
+
const batch = entries.slice(i, i + PARALLEL_UPLOADS);
|
|
168
|
+
const batchNum = Math.floor(i / PARALLEL_UPLOADS) + 1;
|
|
169
|
+
const results = await Promise.all(batch.map(async ([originalPath, normalizedPath]) => {
|
|
170
|
+
const zipObject = zipContent.files[originalPath];
|
|
171
|
+
const content = await zipObject.async('nodebuffer');
|
|
172
|
+
// Build storage path: basePath/normalizedPath
|
|
173
|
+
const storagePath = `${basePath}/${normalizedPath}`;
|
|
174
|
+
// Save the file using saveWithPath which preserves the exact path
|
|
175
|
+
await storage.saveWithPath(content, storagePath);
|
|
176
|
+
return {
|
|
177
|
+
path: storagePath,
|
|
178
|
+
name: normalizedPath,
|
|
179
|
+
size: content.length
|
|
180
|
+
};
|
|
181
|
+
}));
|
|
182
|
+
storedFiles.push(...results);
|
|
183
|
+
// Log progress periodically (every ~10%) or on last batch
|
|
184
|
+
if (batchNum % logInterval === 0 || batchNum === totalBatches) {
|
|
185
|
+
const percent = Math.round((storedFiles.length / totalFiles) * 100);
|
|
186
|
+
console.log(`[ZipUtils] Progress: ${percent}% (${storedFiles.length}/${totalFiles} files)`);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
// Clean up any files that were already uploaded before the error
|
|
192
|
+
if (storedFiles.length > 0) {
|
|
193
|
+
console.log(`[ZipUtils] Error during extraction, cleaning up ${storedFiles.length} uploaded files...`);
|
|
194
|
+
const uploadedPaths = storedFiles.map(f => f.path);
|
|
195
|
+
await storage.deleteBatch(uploadedPaths).catch(cleanupErr => {
|
|
196
|
+
console.error(`[ZipUtils] Failed to clean up files after error:`, cleanupErr);
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
throw error;
|
|
176
200
|
}
|
|
177
201
|
return {
|
|
178
202
|
files: storedFiles,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip_utils.js","sourceRoot":"","sources":["../../src/utils/zip_utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"zip_utils.js","sourceRoot":"","sources":["../../src/utils/zip_utils.ts"],"names":[],"mappings":"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"}
|