Skip to content

文件

异步复制文件/文件夹

1.接口说明

接口路径:/efile/openapi/v2/file/async-copy

请求方式:POST

请求数据类型:application/json

接口描述:异步复制文件/文件夹,支持批量提交任务(建议每次最多提交100个任务)。任务结束后,服务端会缓存任务信息24小时。

2.请求消息

请求参数:

Headers:

名称类型必填描述示例
tokenstring接口凭证eyJhbGciOiJIUzI1N...

参数:

名称类型必填描述示例
sourcePathstring源文件绝对路径/home/demo/efile-test/file_source/text.txt
targetPathstring目标目录绝对路径/home/demo/efile-test/file_target
duplicateHandleTypestring重复文件处理方式。可选值:覆盖:cover,保留二者:bothcover

3.请求示例

cURL请求示例

shell
curl --location 'https://scnet-demo.accloud.cn/efile/openapi/v2/file/async-copy' \
--header 'token: <Token>' \
--header 'Content-Type: application/json' \
--data '[
    {
        "sourcePath": "/home/demo/efile-test/file_source/text.txt",
        "targetPath": "/home/demo/efile-test/file_target",
        "duplicateHandleType": ""
    }
]'

Java请求示例

java
import okhttp3.*;

public class FileCopyDemo {

    public static final String TOKEN = "<Token>";
    
    public static final String URL = "https://scnet-demo.accloud.cn/efile/openapi/v2/file/async-copy";

    public static void main(String[] args) throws Exception {
        String requestBodyJson = "[\n" +
                "    {\n" +
                "        \"sourcePath\": \"/home/demo/efile-test/file_source/text.txt\",\n" +
                "        \"targetPath\": \"/home/demo/efile-test/file_target\",\n" +
                "        \"duplicateHandleType\": \"\"\n" +
                "    }\n" +
                "]";
        
        OkHttpClient client = new OkHttpClient().newBuilder()
                .build();
        MediaType mediaType = MediaType.parse("application/json");
        RequestBody body = RequestBody.create(mediaType, requestBodyJson);
        Request request = new Request.Builder()
                .url(URL)
                .method("POST", body)
                .addHeader("token", TOKEN)
                .addHeader("Content-Type", "application/json")
                .build();
        Response response = client.newCall(request).execute();
        System.out.println(response.body().string());
    }
}

Python请求示例

python
import requests
import json

url = "https://scnet-demo.accloud.cn/efile/openapi/v2/file/async-copy"

payload = json.dumps([
    {
        "sourcePath": "/home/demo/efile-test/file_source/text.txt",
        "targetPath": "/home/demo/efile-test/file_target",
        "duplicateHandleType": ""
    }
])
headers = {
    "token": "<Token>",
    'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

4.响应消息

返回参数:

名称类型说明
msgstring异常时的详细异常信息
codestring0:成功,10003:参数异常,911020:文件不存在,911021:文件已存在,911501:空间不足,911507:源文件与目标文件一致,禁止操作,911009:区域用户不存在,911030:权限不足,10001:其它异常
dataobject
fileOperTasksarray任务信息
taskIdstring任务id,查询任务信息/取消任务时使用
userIdstring用户id
userNamestring用户名
clusterUserNamestring集群用户名
sourcePathstring源文件
targetPathstring目标目录
duplicateHandleTypestring重复文件处理方式。可选值:覆盖:cover,保留二者:both
clusterIdstring集群id
clusterNamestring集群名
operationTypestring操作类型 可选值:复制:copy, 移动:move, 删除:delete
synchronousExecutionboolean执行方式 同步:true,异步:false
statusstring任务状态 可选值:等待:waiting, 处理中:processing, 取消:cancel, 完成:complete, 失败:fail
errorCodestring错误码
errorMsgstring错误消息
totalSizelong文件总大小。synchronousExecution=false 时有值
totalNumlong文件总数量。synchronousExecution=false 时有值
processedSizelong已处理文件大小。synchronousExecution=false 时有值
processedNumlong已处理文件数量。synchronousExecution=false 时有值
progressstring进度
submitTimestring提交时间
startTimestring开始时间
updateTimestring更新时间
fileOperDuplicateFileVosarray同名文件列表,当目标目录存在同名文件,且未指定参数duplicateHandleType时,返回同名文件列表
sourcePathstring源文件
targetPathstring目标文件
sourceNamestring源文件名称
sourceIsSymbolicLinkboolean源文件是否为软链
sourceIsDirectoryboolean源文件是否为文件夹
sourceTypestring源文件类型
sourceSizestring源文件大小
sourceLastModifiedTimestring源文件最后修改时间
targetNamestring目标文件名称
targetIsSymbolicLinkboolean目标文件是否为软链
targetIsDirectoryboolean目标文件是否为文件夹
targetTypestring目标文件类型
targetSizestring目标文件大小
targetLastModifiedTimestring目标文件最后修改时间
execResultstring同步执行-成功:syncExecSuccess,同步执行-有错误任务:syncExecHasError,异步执行-任务提交成功:asyncSubmitSuccess

返回示例:

json
{
  "code": "0",
  "data": {
    "fileOperDuplicateFileVos": null,
    "fileOperTasks": [
      {
        "sourcePath": "/home/demo/efile-test/file_source/text.txt",
        "targetPath": "/home/demo/efile-test/file_target",
        "duplicateHandleType": "",
        "clusterId": null,
        "clusterName": null,
        "taskId": "4237fe8645854dce907276888d7a92e4",
        "userId": "11949818712",
        "userName": "efile-test",
        "clusterUserName": "efile-test",
        "operationType": "copy",
        "synchronousExecution": true,
        "status": "complete",
        "errorCode": null,
        "errorMsg": null,
        "totalSize": 5,
        "totalNum": 1,
        "processedSize": 5,
        "processedNum": 1,
        "progress": null,
        "submitTime": "2025-08-05 15:20:03",
        "startTime": "2025-08-05 15:20:03",
        "updateTime": "2025-08-05 15:20:03"
      }
    ],
    "execResult": "syncExecSuccess"
  },
  "msg": "success"
}

5.错误码

错误码说明
0成功
10001内部异常(其他异常)
10003参数不全
10004参数无效
10009不支持的版本
911009区域用户不存在
911020文件不存在
911021文件已存在
911022目标地址不是一个文件夹
911025分享文件已存在,请重命名后分享
911029文件路径包含特殊字符,请重命名后再操作
911030权限不足,禁止操作
911031文件重命名失败
911034分享链接创建失败,请重新分享
911404ac认证服务端连接异常
911406服务端token认证异常,未取到关联用户
911501存储空间不足
911502目录非空,操作失败
911504命令执行超时
911505文件大小超出预设大小,无法预览
911506文件类型不在预设范围内,不允许打开
911507源文件与目标文件一致,禁止操作
911700文件名包含非法字符,请重命名后再操作
911048服务繁忙,触发限流,请稍后再试