tencent cloud

智能媒资托管

产品简介
产品概述
功能介绍
产品优势
应用场景
基本概念
购买指南
快速入门
创建媒体库
发起请求
服务级 API 文档
History
Introduction
API Category
Making API Requests
PaaS Service APIs
Official Cloud Disk APIs
Data Types
Error Codes
业务级 API 文档
简介
访问令牌操作接口
租户空间操作接口
文件操作接口
目录或相簿操作接口
回收站操作接口
配额操作接口
查询任务操作接口
搜索操作接口
历史版本操作接口
目录和文件批量操作接口
收藏操作接口
Error Codes
SDK 文档
Android SDK
iOS SDK
鸿蒙 SDK
常见问题
企业网盘
产品简介
购买指南
快速入门
常见问题
Service Level Agreement
词汇表

批量移动文件

PDF
聚焦模式
字号
最后更新时间: 2026-01-07 10:49:06

简介

本文档提供关于批量重命名或移动目录或文件的 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];


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈