简介
本文档提供关于文件上传的 API 概览以及 SDK 示例代码。
SDK API 参考
高级上传
功能说明
该上传方法内部会自动进行快速上传、简单上传、分块上传的逻辑。
开始上传或继续上传
QCloudCOSSMHUploadObjectRequest *uploadReq = [QCloudCOSSMHUploadObjectRequest new];// confirmKey 若设置则视为继续上传,否则为新上传任务。// 从 getConfirmKey 回调获取。uploadReq.confirmKey = @"confirmKey";// 设置要上传的目录所在 libraryId;uploadReq.libraryId = @"libraryId";// 设置要上传的目录所在 libraryId;uploadReq.spaceId = @"spaceId";// 上传的文件 URL 或者 datauploadReq.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 并开始上传。