Skip to content

checker

此为异步函数函数,用于生成文件hash值,用于断点续传、秒传等功能

使用方式

js
import { checker } from 'file-uploader';
const file = document.querySelector('input[type="file"]').files[0];
const result = await checker(file, {
  ... 你的配置
});

参数

参数名类型必填说明
fileFile文件对象
configCheckerConfig配置项

返回值

参数名类型说明
resultCheckerResult返回值

ts类型

ts
interface CheckerResult {
  /**
   * 所有切片hashMap
   */
  chunkHashMap:Map<number, string>
  /**
   * 文件哈希值
   */
  hash: string,
  /**
   * 总分片数
   */
  totalChunks: number,
  /**
   * 所有切片
   */
  allChunks: Blob[],
}

interface CheckerConfig
  extends Omit<
    Config,
    | "startOffset"
    | "concurrency"
    | "maxRetries"
    | "includeChunks"
    | "onProgress"
    | "onSpeed"
    | "onSuccess"
    | "uploadFunction"
  > {
    
  }

declare function checker(
  file: File,
  config: CheckerConfig
): Promise<CheckerResult>;

CheckerConfig配置

参数名类型必填默认值说明
chunkSizeNumber5 * 1024 * 1024单个切片大小(单位:字节),默认5MB
hashBooleanfalse是否计算文件整体哈希值(用于秒传验证)
threadsnumber系统CPU核心数 - 2计算hash所需要的webworker线程数
awaitHashBooleantrue是否等待哈希计算完成(仅当hash:true时生效),大文件建议设为false
chunkMapBoolean | Objectfalse分片哈希计算配置:
true-同步计算
{enable:true, async:true}-异步计算
beginHashFunction-开始计算哈希时的回调(仅当hash:true时触发)
endHashFunction-哈希计算完成时的回调(仅当hash:true时触发)

CheckerResult属性

参数名类型说明
chunkHashMapMap<number, string>所有切片hashMap
hashstring文件哈希值
totalChunksnumber总分片数
allChunksBlob[]所有切片