功能描述
用于复制目录或相簿。
接口说明
要求权限:
非 acl 鉴权:admin、space_admin 或 copy_directory。
acl 鉴权:当前目录 canDownload 权限 且 目标目录 canUpload 权限。
自动创建中间所需的各级父目录。
请求
请求示例
PUT /api/v1/directory/
{LibraryId}
/{SpaceId}
/{DirPath}
?conflict_resolution_strategy={ConflictResolutionStrategy}
&access_token={AccessToken}
&user_id={UserId}
请求参数:
LibraryId:媒体库 ID,必选参数。
SpaceId:空间 ID,如果媒体库为单租户模式,则该参数固定为连字符(
-
);如果媒体库为多租户模式,则必须指定该参数。DirPath:目标目录路径或相簿名,对于多级目录,使用斜杠(
/
)分隔,例如 foo/bar_new
,可选参数,对于根目录,该参数留空。ConflictResolutionStrategy:最后一级目录冲突时的处理方式。
ask:冲突时返回 HTTP 409 Conflict 及 SameNameDirectoryOrFileExists 错误码。
rename:冲突时自动重命名最后一级目录,默认为 ask。
AccessToken:访问令牌,必选参数。
UserId:用户身份识别,当访问令牌对应的权限为管理员权限且申请访问令牌时的用户身份识别为空时用来临时指定用户身份,详情请参见 生成访问令牌接口,可选参数。
请求体
application/json,指定被复制的源目录路径或相簿名。
请求体示例:
{"copyFrom": "foo/bar"}
请求体字段说明:
copyFrom:被复制的源目录或相簿路径,必选参数。
响应
响应码
复制成功
当目录内容较多时以异步方式复制时,返回 HTTP 202 Accepted。
当目录内容较少时以同步方式复制时,返回 HTTP 204 No Content(ConflictResolutionStrategy 为 ask)或 HTTP 200 OK(ConflictResolutionStrategy 为 rename)。
响应体
空,无响应体(返回 HTTP 204 No Content)或 application/json(返回 HTTP 200 OK 或 HTTP 202 Accepted)。
响应体示例:
返回 HTTP 200 OK 时:
{ "path": [ "foo", "bar (1)" ] }
返回 HTTP 202 Accepted 时:
{ "taskId": 10 }
查询复制目录或相簿任务响应体:
[{"id": 10,"status": 200,"result": { "path": [ "foo", "bar (1)" ] }}]
响应体字段说明:
path:字符串数组,表示最终的目录或相簿路径,因为可能存在自动重命名,所以这里的最终路径可能不等同于复制目录或相簿时指定的路径。
taskId:异步方式复制时的任务 ID,可通过查询任务接口查询任务状态。