Skip to content
This repository was archived by the owner on Jan 12, 2022. It is now read-only.

geeeger/ws-uploader

Repository files navigation

About

FOSSA StatusCodeScene Code HealthCodeScene System Mastery

清真云上传器


commonjs包, 不支持扩展,单文件实例操作分片上传

Usage

demo

docs

静态配置

import{WebFileasUploader}from'@geeeger/ws-uploader'Uploader.config({// fetch设置// 默认如下,非必须clientConfig: {baseURL: 'https://api.2dland.cn',headers: {'Content-Type': 'application/json'}},// 所需用到的api// 默认如下,非必须apis: {token: '/v3/file/uploadToken',mkblk: '/mkblk/',bput: '/bput/',mkfile: '/mkfile/'},// Authorization header key// 默认如下,非必须AuthorizationTokenKey: 'qingzhen-token',// 本地存储的localStorage key// 默认如下,非必须AuthorizationStorageKey: 'user-authorization-token',// 块重试次数,此处命名错误// 默认如下,非必须chunkRetry: 3,// 不允许改动blockSize: 4*1024*1024,chunkSize: 1*1024*1024,/** * for block upload */// 并发上传数(块级,非必须,默认如下)concurrency: 3,// 可并发执行任务数(非必须,默认3即可)// 此参数主要在worker任务中起作用// 基本表示一个worker线程在非忙时可承担的最大任务数// 设置大了意义不大taskConcurrencyInWorkers: 3,})

一般使用

letfile=MockFile('test.wtf',10*1024*1024+1058,'plain/text')letuploader=newUploader(file,{// path参数,选其一path: '/',// parent: '',// 是否可覆盖,非必须,默认为 0,可选值 0x00 0x02 0x20(0, 2, 32) op: 2},{// Worker , Normal 二选一, 默认Normaladapter: 'Normal',onStatusChange: (ctx,status)=>{constinfo={ ...ctx,file: { ...ctx.file,blocks: []},qetag: null,http: null};t.innerHTML=Object.keys(info).map((key)=>{return(key+':')+(typeofinfo[key]==='object' ? JSON.stringify(info[key]) : info[key])}).join('<hr>');if(status===STATUS.CALCULATING){console.log(ctx.hashCalcProgress)}if(status===STATUS.UPLOADING){console.log(ctx.progress)}if(status===STATUS.FAILED){// ctx 可以拿到 uploader实例, 可以报送任意内容// uploader实例下挂载着file实例,file实例可获取到batchId,可用于打log。// 各类信息均集中在uploader实例中,在下部分贴出ctx.error.map(x=>console.error(x.stack))}// 当上传完成时,再次上传将不可用if(status===STATUS.DONE){alert(newDate()-time)}},debug: true})uploader.upload()// 在mkfile阶段禁止,理论上pause无用是正确的delay(()=>{// 调用pause只能调用resume复原.uploader.pause()delay(()=>{uploader.resume()})},1500)

各模块声明

依赖

依赖模块events,依赖window.crypto.subtle


关于window.crypto.subtle,参见webcrypto

License

FOSSA Status

Packages

No packages published

Contributors 5