digitaltwin-core
Version:
Minimalist framework to collect and handle data in a Digital Twin project
36 lines • 1.23 kB
TypeScript
import type { ConnectionOptions } from 'bullmq';
import type { StorageService } from '../storage/storage_service.js';
import type { DatabaseAdapter } from '../database/database_adapter.js';
export interface TilesetUploadJobData {
type: 'tileset';
recordId: number;
tempFilePath: string;
componentName: string;
userId: number;
filename: string;
description: string;
}
export type UploadJobData = TilesetUploadJobData;
export type UploadStatus = 'pending' | 'processing' | 'completed' | 'failed';
/**
* Background worker for processing large file uploads (tileset extraction).
* Prevents HTTP timeout by queuing jobs and processing asynchronously.
*
* Flow:
* 1. Read ZIP from temp file
* 2. Extract and upload all files to storage (OVH S3)
* 3. Update database with tileset_url and base_path
* 4. Clean up temp file
*/
export declare class UploadProcessor {
private worker;
private storage;
private db;
constructor(storage: StorageService, db: DatabaseAdapter);
start(connection: ConnectionOptions): void;
stop(): Promise<void>;
private processJob;
private processTilesetUpload;
private updateRecordStatus;
}
//# sourceMappingURL=upload_processor.d.ts.map