上传

最近更新时间:2024-10-15 14:36:01

我的收藏

简介

本文档提供关于文件上传的 API 概览以及 SDK 示例代码。

SDK API 参考

SDK 所有接口的具体参数与方法说明,请参见 SDK API 参考

上传

功能说明

该上传方法内部会自动进行快速上传、简单上传、分块上传的逻辑。
开始上传。
late SMHUploadTask task;
task = await SMHApiTransferApis.upload(
libraryId: 'libraryId',
// 空间 ID
spaceId: 'spaceId',
// 用户 ID
userId: '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 进行上传。