功能描述
用于复制文件。
接口说明
要求权限:
非 acl 鉴权:admin、space_admin 或 copy_file/copy_file_force。
acl 鉴权:canDownload(当前文件夹可下载) & canUpload(目标文件夹可上传)
该接口的源和目标均需要指定完整的文件路径,源与目标可以跨越目录,来实现将文件复制到任意其他目录下的功能,且支持同时修改文件名。
不会自动创建中间所需的各级父目录,所以必须保证路径的各级目录存在。
请求
请求示例
PUT /api/v1/file/
{LibraryId}
/{SpaceId}
/{FilePath}
?conflict_resolution_strategy={ConflictResolutionStrategy}
&access_token={AccessToken}
&user_id={UserId}
请求参数:
LibraryId:媒体库 ID,必选参数。
SpaceId:空间 ID,如果媒体库为单租户模式,则该参数固定为连字符(
-
);如果媒体库为多租户模式,则必须指定该参数。FilePath:完整文件路径,例如
foo/bar/file_new.docx
。ConflictResolutionStrategy:文件名冲突时的处理方式。
ask:冲突时返回 HTTP 409 Conflict 及 SameNameDirectoryOrFileExists 错误码。
rename:冲突时自动重命名文件。
overwrite:如果冲突目标为目录时返回 HTTP 409 Conflict 及 SameNameDirectoryOrFileExists 错误码,否则覆盖已有文件,默认为 rename。
AccessToken:访问令牌,必选参数。
UserId:用户身份识别,当访问令牌对应的权限为管理员权限且申请访问令牌时的用户身份识别为空时用来临时指定用户身份,详情请参阅 生成访问令牌接口,可选参数。
请求体
application/json,指定被重命名或移动的源文件路径。
请求体示例:
{"copyFrom": "foo/bar/file_old.docx"}
请求体字段说明:
copyFrom:被重命名或移动的源文件路径,必选参数。
响应
响应码
复制成功,返回 HTTP 200 OK。
响应体
application/json
响应体示例:
{ "path": [ "foo", "bar", "file_new (1).docx" ] }
响应体字段说明:
path:字符串数组 或 null,如果是字符串数组则表示最终的文件路径,数组中的最后一个元素代表最终的文件名,其他元素代表每一级目录名,因为可能存在同名文件自动重命名,所以这里的最终路径可能不等同于移动或重命名时指定的目标路径;如果是 null 则表示目标路径的某级父级目录已被删除,该目标文件已经无法访问。