parallel-file-uploader
Version:
高性能并行文件上传工具,支持大文件分片上传、断点续传、Web Worker多线程处理
38 lines • 1.2 kB
JavaScript
// Web Worker实现文件分片处理
// 专门负责数据处理,不进行网络请求
// 适配Worker环境
const ctx = self;
ctx.onmessage = async function (e) {
const message = e.data;
// 处理所有包含文件数据的消息
if (message.fileId && message.chunkInfo) {
const { fileId, chunkInfo } = message;
try {
// 将处理后的数据发送回主线程
ctx.postMessage({
type: 'response',
fileId,
chunkInfo,
processed: true,
result: {
file: chunkInfo.file, // 返回处理后的Blob
partNumber: chunkInfo.partNumber,
partSize: chunkInfo.partSize,
},
});
}
catch (error) {
// 发送错误消息
ctx.postMessage({
type: 'error',
fileId,
chunkInfo,
error: error instanceof Error ? error.message : String(error),
});
}
}
};
// 通知主线程Worker已经准备就绪
ctx.postMessage({ type: 'ready' });
export {};
//# sourceMappingURL=worker.js.map