checker
此为异步函数函数,用于生成文件hash值,用于断点续传、秒传等功能
使用方式
js
import { checker } from 'file-uploader';
const file = document.querySelector('input[type="file"]').files[0];
const result = await checker(file, {
... 你的配置
});
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
file | File | 是 | 文件对象 |
config | CheckerConfig | 是 | 配置项 |
返回值
参数名 | 类型 | 说明 |
---|---|---|
result | CheckerResult | 返回值 |
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配置
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
chunkSize | Number | 否 | 5 * 1024 * 1024 | 单个切片大小(单位:字节),默认5MB |
hash | Boolean | 否 | false | 是否计算文件整体哈希值(用于秒传验证) |
threads | number | 否 | 系统CPU核心数 - 2 | 计算hash所需要的webworker线程数 |
awaitHash | Boolean | 否 | true | 是否等待哈希计算完成(仅当hash:true 时生效),大文件建议设为false |
chunkMap | Boolean | Object | 否 | false | 分片哈希计算配置:true -同步计算{enable:true, async:true} -异步计算 |
beginHash | Function | 否 | - | 开始计算哈希时的回调(仅当hash:true 时触发) |
endHash | Function | 否 | - | 哈希计算完成时的回调(仅当hash:true 时触发) |
CheckerResult属性
参数名 | 类型 | 说明 |
---|---|---|
chunkHashMap | Map<number, string> | 所有切片hashMap |
hash | string | 文件哈希值 |
totalChunks | number | 总分片数 |
allChunks | Blob[] | 所有切片 |