4.0.0-beta.6 • Published 8 months ago

qiniu-js v4.0.0-beta.6

Weekly downloads
2,561
License
MIT
Repository
github
Last release
8 months ago

SDK README

快速使用

  1. 安装SDK
npm i qiniu-js@^4.0.0
  1. 导入SDK
import { createDirectUploadTask, createMultipartUploadV2Task, FileData } from 'qiniu-js';
  1. 创建上传任务
// 创建上传数据
const fileData: FileData = { type: 'file', data: File}
const fileData: FileData = { type: 'string', data: 'content' }
const fileData: FileData = { type: 'array-buffer', data: new ArrayBuffer(1e3) }

// 创建直传任务
const uploadTask = createDirectUploadTask(fileData, config);

// 创建分片上传任务
// 部分私有云服务版本较老的请使用 v1 分片上传
const uploadTask = createMultipartUploadV2Task(fileData, config);
  1. 设置任务回调函数
// 设置进度回调函数
uploadTask.onProgress((progress, context) => {
  // 处理进度回调
});

// 设置完成回调函数
uploadTask.onComplete((result, context) => {
  // 处理完成回调
});

// 设置错误回调函数
uploadTask.onError((error, context) => {
  // 处理错误回调
});
  1. 启动任务
uploadTask.start()
  1. 简单模式

如果你不需要关心进度信息,可以通过 start 快速获取任务的状态信息

createMultipartUploadTask(fileData, config).start()
 .then((result) => {
    // 处理任务完成结果
  })
  .catch((error) => {
    // 处理任务启动失败错误
  });

接口说明

TokenProvider

type TokenProvider = () => Promise<string>
  • 一个用于获取上传所需 token 的函数类型。
  • 返回一个 Promise,该 Promise 提供上传所需的 token。

Context

interface Context<ProgressKey extends string = string> {
  host?: Host;
  token?: Token;
  result?: string;
  error?: UploadError;
  progress: Progress<ProgressKey>;
}
  • 上传的上下文接口,用于存储任务相关的信息。
  • host:上传使用的 host。
  • token:上传使用的 token。
  • result:上传成功的信息。
  • error:队列的错误。
  • progress:整体的任务进度信息。

UploadConfig

interface UploadConfig {
  tokenProvider: TokenProvider;
  apiServerUrl?: string;
  uploadHosts?: []string;
  logLevel?: LogLevel;
  protocol?: HttpProtocol;
  vars?: Record<string, string>;
}
  • 上传配置接口,用于配置上传任务的相关参数。
  • apiServerUrl:服务的接口地址;默认为七牛公有云,示例:https://api.qiniu.com 该配置仅当未设置 uploadHosts 时生效,SDK 将会通过指定的 api 服务提供的接口来动态获取上传地址,私有云请联系集群运维人员,并确认集群是否支持 v4/query 接口
  • uploadHosts: 上传服务地址,手动指定上传服务地址,示例:up.qiniu.com
  • logLevel:日志级别。
  • protocol:HTTP 协议,默认 HTTPS。
  • tokenProvider:用于获取上传所需 token 的函数。
  • vars: 上传过程中的自定义变量。

OnError

type OnError = (error: UploadError, context: Context) => void;
  • 错误回调函数类型。

OnProgress

type OnProgress = (progress: Progress, context: Context) => void;
  • 进度回调函数类型。

Progress

type Progress<Key extends string = string> = {
  /** 上传的文件总大小;单位 byte */
  size: number
  /** 目前处理的百分比进度;范围 0-1 */
  percent: number
  /** 具体每个部分的进度信息; */
  details: Record<Key, {
    /** 子任务的处理数据大小;单位 byte */
    size: number
    /** 目前处理的百分比进度;范围 0-1 */
    percent: number
    /** 该处理是否复用了缓存; */
    fromCache: boolean
  }>
}

OnComplete

type OnComplete = (result: string, context: Context) => void;
  • 完成回调函数类型。
  • 接收一个上下文参数,并返回 void

UploadTask

interface UploadTask {
  onProgress(fn: OnProgress): void;
  onComplete(fn: OnComplete): void;
  onError(fn: OnError): void;
  cancel(): Promise<Result>;
  start(): Promise<Result>;
}
  • 上传任务接口,用于控制上传任务的执行和处理回调函数。
  • onProgress(fn: OnProgress):设置进度回调函数。
  • onComplete(fn: OnComplete):设置完成回调函数。
  • onError(fn: OnError):设置错误回调函数。
  • cancel():取消上传任务,并返回一个 Promise,该 Promise 在解析时提供任务结果。
  • start():启动上传任务,并返回一个 Promise, 该 Promise 在解析时提供任务结果。
42-pro-markdown-nicebrand-formcf-designer@itnikc/legend-form-makerld-form-makinggr-form-makingtowify_sdkvue-kityminder-editor-v2emsysform-makinghform-makingmform-makingxhform-making-huaform-making-revlko-form-makingdoposoft-form-makelucky-form-makingch-demo-fromlegend-form-maker@hzenfo/form-making-advanced@hzenfo/form-makingtendata-adminr-vue-element-componentlycfelibmite-elemini-pcv-design-cgtowify-data-enginetowify-sdkad-vuead-designadd-vuequestion-makingmk-niceke_form-makingdcocd-form-makingform-making-advanced-keeponlinecity-admin-uicrm-xiguan-admin-uimking-form@infinitebrahmanuniverse/nolb-qinmarkdown-nice-42-pro@everything-registry/sub-chunk-2504d2v5-wwwassets-popupform-templage-xutc-auto-formtaro-toolsettang-form-makingtcc-form-makingsyl-form-makertable-makingtable-making-cctest-form-makingvue-makersvue-benchu-uivue-kityminder-gg-hejinvue-kityminder-gg-zzwlvue-kityminder-calmvue-kityminder-editor-v3weiyun-buiweiyun-uiweiyun-vue-uiwenhui-testwu-vue-uiwh-form-draggablexl-story-bookwsw-form-makerww-table-makingxhc-socialized-servicevue-comp-extvue-component-quill-rich-editervue-component-normal-rich-editervue-form-making-specialvue-form-making-yhaovue-dtsvue-form-devisevlko-auto-makingvue-custom-form-making@ctan/ckeditor5-qiniu-uploadiview-design-formiview-form-designjeeplus-formjeeplus-form-boot-v3jeeplus-form-makejeeplus-form-make-testjeeplus-form-v1jeeplus-form-v2jeeplus-form-v3jeeplus-form-zhiqiang.lujeeplus-devtools-boot-v3jeeplus-devtools-v3issmart-form-builderissmart-form-makingiov-form-makingjourney_frontkaka-formjlzkjc-kityminder-editorjokerformkcminder
4.0.0-beta.6

8 months ago

4.0.0-beta.5

8 months ago

4.0.0-beta.4

11 months ago

4.0.0-beta.3

11 months ago

4.0.0-beta.2

11 months ago

4.0.0-beta.1

1 year ago

3.4.2

1 year ago

3.4.1

3 years ago

3.4.0

4 years ago

3.3.3

4 years ago

3.3.2

4 years ago

3.3.1

4 years ago

3.3.0

4 years ago

3.1.3

4 years ago

3.2.0

4 years ago

3.1.4

4 years ago

3.1.2

5 years ago

3.1.1

5 years ago

3.1.0

5 years ago

3.0.3

5 years ago

3.0.2

5 years ago

3.0.1

5 years ago

3.0.0

5 years ago

2.5.5

6 years ago

2.5.4

6 years ago

2.5.3

7 years ago

2.5.2

7 years ago

2.5.1

7 years ago

2.5.0

7 years ago

2.4.0

7 years ago

2.3.0

7 years ago

2.2.2

7 years ago

2.2.1

7 years ago

2.2.0

7 years ago

2.1.3

7 years ago

2.1.2

7 years ago

2.1.1

7 years ago

2.1.0

7 years ago

2.0.2

7 years ago

2.0.2-beta.1

7 years ago

2.0.1

7 years ago

2.0.0

7 years ago

1.0.24

7 years ago

1.0.23

7 years ago

1.0.22

8 years ago

1.0.21

8 years ago

1.0.19

8 years ago

1.0.18

8 years ago

1.0.14-beta

9 years ago