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

最近更新时间:2022-03-21 12:59:05

我的收藏

功能描述

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

接口说明

要求权限:
非 acl 鉴权:admin、space_admin 或 move_directory/move_file/move_file_force,如需同时重命名或移动目录和文件,可同时指定 move_directory 与 move_file/move_file_force 权限;
说明
非 acl 鉴权是指当前用户对所有文件的操作权限,详情可参考 生成访问令牌接口
acl 鉴权是通过共享授权接口给指定用户,以文件夹为单位授予的权限,详情可参考 角色授权模块

请求

请求示例

POST /api/v1/batch/{LibraryId}/{SpaceId}?move&access_token={AccessToken}&user_id={UserId}
请求参数:
LibraryId:媒体库 ID,必选参数。
SpaceId:空间 ID,必须指定该参数,如果媒体库为单租户模式,则该参数固定为连字符(-)。
AccessToken:访问令牌,必选参数。
UserId:用户身份识别,当访问令牌对应的权限为管理员权限且申请访问令牌时的用户身份识别为空时用来临时指定用户身份,详情请参阅 生成访问令牌接口,可选参数。

请求体

application/json,指定重命名或移动的源路径和目的路径。
请求体示例:
[
{
"from": "foo/bar_old",
"to": "foo/bar"
},
{
"from": "foo/1.jpg",
"to": "bar/1.jpg",
"moveAuthority":true
},
{
"from": "foo/2.jpg",
"to": "bar/2.jpg",
"conflictResolutionStrategy": "overwrite"
}
]
请求体字段说明:
from:被重命名或移动的源目录、相簿或文件路径,必选参数。
to:目标目录、相簿或文件路径,必选参数。
conflictResolutionStrategy:文件名冲突时的处理方式。
ask:冲突时返回 status:409 及 SameNameDirectoryOrFileExists 错误码。
rename:冲突时自动重命名文件。
overwrite:如果冲突目标为目录时返回 status:409 及 SameNameDirectoryOrFileExists 错误码,否则覆盖已有文件,如果目标为目录或相簿时,默认为 ask 且不支持 overwrite,如果目标为文件默认为 rename。
moveAuthority:是否移动文件夹权限,可选参数,true 移动,false 不移动(默认)。

响应

响应码

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

响应体

application/json
响应体示例: 返回 HTTP 200 OK 或 HTTP 207 Multi-Status 时:
{
"result": [
{
"status": 204,
"from": [ "foo", "bar_old" ],
"to": [ "foo", "bar" ],
},
{
"status": 200,
"path": [ "bar", "1 (1).jpg" ],
"from": [ "foo", "1.jpg" ],
"to": [ "bar", "1.jpg" ],
},
{
"status": 204,
"from": [ "foo", "2.jpg" ],
"to": [ "bar", "2.jpg" ],
}
]
}
返回 HTTP 202 Accepted 时:
{ "taskId": 17 }
查询批量重命名或移动任务响应体:
[
{
"id": 17,
"status": 200,
"result": [
{
"status": 204,
"from": [ "foo", "bar_old" ],
"to": [ "foo", "bar" ],
},
{
"status": 200,
"path": [ "bar", "1 (1).jpg" ],
"from": [ "foo", "1.jpg" ],
"to": [ "bar", "1.jpg" ],
},
{
"status": 204,
"from": [ "foo", "2.jpg" ],
"to": [ "bar", "2.jpg" ],
}
]
}
]
响应体字段说明:
result.status:单个项目的重命名或移动结果。
200:conflictResolutionStrategy 为 rename 时重命名或移动成功。
204:conflictResolutionStrategy 为 ask 或 overwrite 时重命名或移动成功。
403/404/409/500 等:重命名或移动失败。
result.path:字符串数组,表示最终的路径,因为可能存在自动重命名,所以这里的最终路径可能不等同于重命名或移动时指定的路径。
result.from 和 result.to:发起请求时传入的对应路径的数组形式。
taskId:异步方式重命名或移动时的任务 ID,可通过查询任务接口查询任务状态。
查询任务响应体字段说明:
status:
202:任务进行中。
200:全部执行成功。
207:存在部分或全部执行失败。