Skip to content

快速开始 ​

@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/vueVue 3 composablevue@^3.3(可选 peer)
@pidaqing/uploader/reactReact 18+ hooksreact@>=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 /:fileIdabort / refCount 释放
GET /health健康检查

接口入参/出参均为字符串口径的数字字段,无精度风险。

MIT Licensed · partake 生态