更新记录
1.0.0(2026-11-05)
下载此版本
1.0.0
- 首个版本:进度/重试/并发池/分片断点续传/abort
平台兼容性
pk-uploader · 上传套件
文件上传:进度回调 / 指数退避重试 / 并发池 / 分片断点续传 / 随时中止。纯 JS。
安装
复制 uni_modules/pk-uploader 到项目 uni_modules/ 下即可。
快速开始
import pkUpload from '@/uni_modules/pk-uploader/js_sdk/index.js';
const r = await pkUpload.upload({
url: 'https://api.example.com/upload',
filePath: tempFilePath,
retries: 2,
onProgress: ({ loaded, total, percent }) => console.log(percent + '%')
});
方法一览(全部暴露方法)
| 方法 |
签名 |
说明 |
init |
init(opts?) |
初始化配置,幂等 |
upload |
upload(opts) → Promise<{ok,statusCode,data?,error?}> |
便捷上传:创建任务并立即开始 |
createTask |
createTask(opts) → task |
创建可控任务:task.start() 启动、task.abort() 中止 |
uploadBatch |
async uploadBatch(list, opts) → {ok,results[],failed} |
批量上传,内置并发池,逐项返回结果 |
activeCount |
activeCount() → number |
当前进行中的任务数 |
planChunks |
planChunks(total, chunkSize, doneIdx?) → {chunks,pending} |
分片规划纯函数;传已完成下标即跳过(断点续传) |
backoffDelay |
backoffDelay(attempt, base?) → ms |
指数退避 + 25% 抖动,上限 30s(纯函数) |
runPool |
async runPool(tasks, limit) → 结果按原下标归位 |
固定并发池,单任务失败不影响其它(纯函数) |
aggregateProgress |
aggregateProgress(loaded, total) → {loaded,total,percent} |
进度聚合(纯函数) |
normalizeOptions |
normalizeOptions(opts) |
选项归一 + 下限保护(纯函数) |
PLUGIN_VERSION |
string |
插件版本号 |
upload/createTask 的 opts
| 键 |
默认 |
说明 |
url |
必填 |
上传接口(multipart/form-data) |
filePath |
必填 |
本地文件路径 |
field |
'file' |
文件字段名 |
chunkSize |
不分片 |
传数字(≥64KB)启用分片模式 |
concurrency |
3 |
并发数(1–8) |
retries |
2 |
失败自动重试次数 |
timeout |
60000 |
单次请求超时 ms |
headers / formData |
{} |
附加头 / 表单字段 |
onProgress |
— |
({loaded,total,percent}) => {} |
错误码
| 码 |
场景 |
E-UL-10 |
上传返回非 2xx(重试耗尽) |
E-UL-11 |
网络失败(重试耗尽) |
E-UL-20 |
分片上传重试耗尽 |
E-UL-30 |
批量上传存在失败项 |