简介
本文档提供关于文件上传的 API 概览以及 SDK 示例代码。
SDK API 参考
上传
功能说明
该上传方法内部会自动进行快速上传、简单上传、分块上传的逻辑。
开始上传。
late SMHUploadTask task;task = await SMHApiTransferApis.upload(libraryId: 'libraryId',// 空间 IDspaceId: 'spaceId',// 用户 IDuserId: 'userId',上传的文件 文件路径、File 对象、字节数组body: 'body',// 目标路径filePath: filePath,userToken: 'userToken',// confirmKey 回调用于续传confirmKeyCalBack: (confirmKey) {task.info.confirmKey = confirmKey;},// 进度回调onSendProgress: (count, total) {// count 已上传的字节数// total 总的字节数},// 完成回调finishCalBack: (result, error) {},);task.stateStream.stream.listen((event) {任务状态监听// SMHTaskState.waiting, 等待中// SMHTaskState.processing, 进行中// SMHTaskState.error, 任务错误// SMHTaskState.pause, 任务暂停// SMHTaskState.success, 成功// SMHTaskState.canceled, 取消});
暂停
task.pause();
继续(应用不进行重新启动)
task.resume();
取消上传
task.cancel();
说明
若要实现 App 被 kill 之后再次打开继续续传,则需要业务端将 confirmkey 以及本次上传任务对应的 body、libraryId、spaceId、filePath、userToken、userId 进行持久化,再次进入 App 时重新调用 SMHApiTransferApis.upload 进行上传。