有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

简介

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

SDK API 参考

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

高级上传

功能说明

该上传方法内部会自动进行快速上传、简单上传、分块上传的逻辑。

开始上传或继续上传

QCloudCOSSMHUploadObjectRequest *uploadReq = [QCloudCOSSMHUploadObjectRequest new];
// confirmKey 若设置则视为继续上传,否则为新上传任务。
// 从 getConfirmKey 回调获取。
uploadReq.confirmKey = @"confirmKey";
// 设置要上传的目录所在 libraryId;
uploadReq.libraryId = @"libraryId";
// 设置要上传的目录所在 libraryId;
uploadReq.spaceId = @"spaceId";
// 上传的文件 URL 或者 data
uploadReq.body = @"uploadBody";
uploadReq.uploadPath = @"目标路径";
// confirmKey 回调
uploadReq.getConfirmKey = ^(NSString *_Nullable confirmKey) {
// confirmKey 在进行断点续传时需要,业务需要保存
};
// 上传进度回调
[uploadReq setSendProcessBlock:^(int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend) {

}];
// 上传结果回调
[uploadReq setFinishBlock:^(QCloudSMHContentInfo *result, NSError *error) {

}];
// 发起上传
[[QCloudSMHService defaultSMHService] uploadObject:uploadReq];

暂停

上传时创建的 request 执行 cancel 方法。
[uploadReq cancel];

取消上传

上传时创建的 request 执行 abort 方法,可以在结束回调中做一些清理工作。
[uploadReq abort:^(id outputObject, NSError *error) {
// 结束回调
}];
说明:
若要实现 App 被 kill 之后再次打开继续续传,则需要业务端将 confirmkey 以及本次上传任务对应的 body、libraryId、spaceId、uploadPath 进行持久化,再次进入 App 时重新创建 request 并开始上传。