功能描述
用于恢复指定回收站项目(批量)。
接口说明
要求权限:
非 acl 鉴权:admin、space_admin 或 restore_recycled。
acl 鉴权:admin、space_admin。
恢复项目时需保证该项目所在的目录存在。
请求
请求示例
POST /api/v1/recycled/
{LibraryId}
/{SpaceId}
?restore&access_token={AccessToken}
&user_id={UserId}
请求参数:
LibraryId:媒体库 ID,必选参数。
SpaceId:空间 ID,如果媒体库为单租户模式,则该参数固定为连字符(
-
);如果媒体库为多租户模式,则必须指定该参数。AccessToken:访问令牌,必选参数。
UserId:用户身份识别,当访问令牌对应的权限为管理员权限且申请访问令牌时的用户身份识别为空时用来临时指定用户身份,详情请参阅 生成访问令牌接口,可选参数。
请求体
application/json,批量恢复的 recycledItemId 集合。
请求体示例:
[ 1, 2, 3, 4, 5 ]
请求体为数组,必填参数。
响应
响应码
执行成功
当项目较多以异步方式恢复时,返回 HTTP 202 Accepted。
当项目较少以同步方式恢复时,返回 HTTP 200 OK(全部执行成功)或 HTTP 207 Multi-Status(存在部分或全部执行失败)。
响应体
application/json
响应体示例:
返回 HTTP 200 OK 或 HTTP 207 Multi-Status 时:
{"result": [{"status": 200,"path": [ "foo", "bar", "file (1).docx" ],"recycledItemId": 1},{"status": 404,"code": "RecycledItemNotFound", // 文件不存在"message": "Recycled item not found.","recycledItemId": 2},{"status": 404,"code": "DirectoryNotFound", // 父目录不存在"message": "Directory not found.","recycledItemId": 3},{"status": 409,"code": "SameNameDirectoryOrFileExists", // 目标目录已存在"message": "A directory or file with the same name already exists.","recycledItemId": 4},{"status": 404,"code": "SourceFileNotFound", // 符号链接指向的源文件不存在"message": "Source file not found.","recycledItemId": 5}]}
返回 HTTP 202 Accepted 时:
{ "taskId": 20 }
查询批量恢复任务响应体:
[{"id": 20,"status": 200,"result": [{ "status": 200, "path": [ "foo", "bar", "file (2).docx" ], "recycledItemId": 6 }]}]
响应体字段说明:
result.status:200:恢复成功,其他:恢复失败。
result.path:字符串数组,表示最终的文件路径。
result.recycledItemId:发起请求时传入的回收站项目 ID。
taskId:异步方式恢复时的任务 ID,可通过查询任务接口查询任务状态。
查询任务响应体字段说明:
status:202:任务进行中,200:全部执行成功,207:存在部分或全部执行失败。