基于 Vite + React + smh-js-sdk 的极简上传队列管理 Demo。
代码架构、模块职责、调用链路的详细梳理见 ARCHITECTURE.md。
cd demo/queue npm install npm run dev
浏览器会自动打开 http://localhost:5191。
src/App.jsx 顶部 DEFAULT_CRED 已填入用户提供的 SMH 凭证:
basePath: https://smh3jsttekkpsoqw.api.tencentsmh.cnlibraryId: smh3jsttekkpsoqwspaceId: space232t1yug3w7upaccessToken: 预填| 文件 | 作用 |
|---|---|
src/upload-queue.js | 队列管理器:并发控制、pause/resume/cancel/remove、进度分阶段、订阅通知 |
src/App.jsx | UI:header、统计、列表、任务行组件 |
src/app.css | 样式(纯 CSS,~230 行) |
SDK 上报的 info.state 会在上传过程中切换:
'computing_hash' → Hash 校验阶段:计算秒传 beginning hash / full hash。Demo 里展示紫色进度条(q-badge--hash)。'running' / 其他 → 上传阶段:分片 PUT 或 simpleUpload。Demo 里展示蓝色进度条(q-badge--active)。小文件(<32MB)走 SDK 的 simpleUpload,可能直接跳过 hash 阶段;大文件会先计算 hash,再进入上传。
demo/dotnet/webui/src/upload-manager.js 的 IndexedDB 持久化方案