块
轻松地从浏览器上传大文件
管道部件描述
见 examples/integrator.ts 以善用为例.
import {chunkinator} from '@atlaskit/chunkinator';
chunkinator 是一个主要自定义的高阶组件,它为您提供了上传大文件的方法.
它用一个文件作为输入,并用由以下部分组成的可观察管来推动:
slicenatorhashinatoruploadinatorprocessinator
作为第二个论点 chunkinator 使用以下接口的配置选项 :
interface Options {
chunkSize: number;
hashingConcurrency: number;
hashingFunction?: HashingFunction;
uploadingConcurrency: number;
uploadingFunction: UploadingFunction;
processingBatchSize: number;
processingFunction?: ProcessingFunction;
}
作为第三个论点 chunkinator 列出方便的回调。 目前只有一个: onProgress。 。 。 .
切除器
此组件需要一块块大小并返回可观察的相继流块块 .
选项" chunkSize 是定义块大小的
预览器
此组件取出一串小块和一串块。 返回的溪流含有blob和它的散列.
选项" hashingConcurrency 定义数量
块块同时被散列. hashingFunction 是可选散列函数。 若为 hashingFunction 没有
提供 SHA-1 将改为使用.
上传器
如果blob在后端不存在,则此组件取出散列布并上传.
选项" uploadingFunction 是一个调用blob并上传到服务器的回调 .
uploadingConcurrency 控制这些电话中有多少同时发生.
处理器
有了这个组件,消费者有机会以某种方式最后确定已经上载的块.
选项" processingFunction 定义带有相继批次上传块的函数.
processingBatchSize 控制为处理函数提供的上传块数.
进度回调
此调用被调用 。 唯一的论据是已经有一部分了 上传到它的总数.