Appearance
快速开始
@pidaqing/uploader 是 partake 上传网关路由契约的浏览器端完整实现:你只需要提供一个实现同契约的后端(controlBase),即可获得分片上传、秒传、断点续传等全部能力。
安装
bash
npm install @pidaqing/uploader
# 适配层为可选 peer 依赖,按需安装
npm install vue # @pidaqing/uploader/vue + components
npm install react # @pidaqing/uploader/react打包器要求:需要带 TS 支持的打包器(Vite / webpack 5 / esbuild)。v1.0 前采用源码分发策略(
exports直接指向.ts),编译产物在 v1.0 规划中。
子路径一览
| 子路径 | 内容 | 依赖 |
|---|---|---|
@pidaqing/uploader | 框架无关 core(状态机/引擎/管理器/工具) | 无 |
@pidaqing/uploader/vue | Vue 3 composable | vue@^3.3(可选 peer) |
@pidaqing/uploader/react | React 18+ hooks | react@>=18(可选 peer) |
@pidaqing/uploader/components | 开箱即用 UI 组件 | vue@^3.3(可选 peer) |
@pidaqing/uploader/components/theme.css | 组件默认主题 | 仅样式 |
Vue 3
ts
import { usePartakeUpload } from '@pidaqing/uploader/vue';
const { tasks, stats, addFiles } = usePartakeUpload({
controlBase: '/api/partake',
});
// hash → 秒传探测 → 分片 PUT → complete(自动启动)
addFiles([file]);React 18+
ts
import { usePartakeUpload } from '@pidaqing/uploader/react';
const { tasks, stats, addFiles, pause, resume } = usePartakeUpload({
controlBase: '/api/partake',
});UI 组件(Vue 3)
vue
<script setup>
import { PartakeUploader } from '@pidaqing/uploader/components';
import '@pidaqing/uploader/components/theme.css';
</script>
<template>
<PartakeUploader control-base="/api/partake" @complete="onComplete" />
</template>契约路由参考
SDK 默认对接 partake 网关的 8 路由契约(controlBase 为路由前缀):
| 路由 | 用途 |
|---|---|
POST /init | 初始化(含秒传探测:命中 instant:true 直接完成) |
POST /:fileId/part-urls | 批量分片预签名(≤1000/批) |
POST /:fileId/complete | 合并(幂等矩阵 + HeadObject 预检 + ETag 校验) |
GET /:fileId/resume | 断点续传探测(ListParts 为唯一真相源) |
GET /:fileId/status | 文件状态查询 |
GET /:fileId/download-url | 预签名下载 |
DELETE /:fileId | abort / refCount 释放 |
GET /health | 健康检查 |
接口入参/出参均为字符串口径的数字字段,无精度风险。