有奖捉虫:行业应用 & 管理与支持文档专题 HOT

简介

本文档提供关于批量重命名或移动目录或文件的 API 概览以及 SDK 示例代码。
API
操作描述
批量重命名或移动目录或文件

SDK API 参考

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

批量重命名或移动目录或文件

功能说明

用于批量重命名或移动目录或文件
当项目较多以异步方式移动时,返回 HTTP 202 Accepted。
当项目较少以同步方式移动时,返回 HTTP 200 OK(全部执行成功)或 HTTP 207 Multi-Status(存在部分或全部执行失败)。

批量移动实例代码

开始批量移动

QCloudSMHBatchMoveRequest *req = [QCloudSMHBatchMoveRequest new];
req.spaceId = @"spaceId";
req.libraryId = @"libraryId";
QCloudSMHBatchMoveInfo *info = [QCloudSMHBatchMoveInfo new];
// 原路径
info.from = @"from";
// 目标路径
info.to = @"target";
// 是否移动权限
info.moveAuthority = YES;
// 文件名与目标路径冲突时 解决策略
info.conflictStrategy = QCloudSMHConflictStrategyEnumRename;
req.batchInfos = @[info];
[req setFinishBlock:^(QCloudSMHBatchResult *result, NSError * _Nullable error) {
//如果是同步任务,从 http 的状态码中获取任务的状态
QCloudSMHBatchTaskStatus status = QCloudSMHBatchTaskStatusTypeFromStatus([result __originHTTPURLResponse__].statusCode);
result.status = status;
if(status != QCloudSMHBatchTaskStatusWating || error){
// 当任务状态非等待或者 有 error 时 结束
if(self.finishBlock){
self.finishBlock(result, error);
}
}else{
// 使用返回的 taskid 进行轮询任务状态
result.taskId;
}

}];
[[QCloudSMHService defaultSMHService]batchMove:req];


查询任务状态

这里需要进行轮询任务状态,直到查询到任务结果。
QCloudGetTaskStatusRequest *req = [QCloudGetTaskStatusRequest new];
req.spaceId = @"spaceId";
req.libraryId = @"libraryId";
// 上一步返回的 taskId
req.taskIdList = @[taskId];
[req setFinishBlock:^(NSArray * _Nonnull result, NSError * _Nonnull error) {

}];
[[QCloudSMHService defaultSMHService] getTaskStatus:req];

高级批量移动示例代码

该接口封装了批量移动以及轮询任务状态,setFinishBlock 直接返回最终任务结果,无需手动查询任务状态。
QCloudSMHMoveObjectRequest *req = [QCloudSMHMoveObjectRequest new];
req.spaceId = @"spaceId";
req.libraryId = @"libraryId";
QCloudSMHBatchMoveInfo *info = [QCloudSMHBatchMoveInfo new];
// 原路径
info.from = @"from";
// 目标路径
info.to = @"target";
// 是否移动权限
info.moveAuthority = YES;
// 文件名与目标路径冲突时 解决策略
info.conflictStrategy = QCloudSMHConflictStrategyEnumRename;

req.batchInfos = @[info];
[req setFinishBlock:^(QCloudSMHBatchResult *result, NSError *_Nullable error) {

}];
[[QCloudSMHService defaultSMHService] moveObject:req];