Skip to content

文件

分片文件上传

1.接口说明

接口路径:/efile/openapi/v2/file/burst

请求方式:POST

请求数据类型:multipart/form-data

接口描述:分片上传文件,可以更快地上传文件

2.请求消息

请求参数:

Headers:

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

参数:

名称类型必填描述示例
chunkNumberlong当前分片序号,文件不分片时默认为110
coverstring参数值,cover:强制覆盖旧文件,uncover:不覆盖旧文件;默认值为uncoveruncover
fileFile一个图片或文件,需用post multipart/form-data方式上传file=@"ac-menu.xml"
filenamestring文件名(relativePath中已包含)ac-menu.xml
identifierstring文件标识10396-ac-menuxml
pathstring文件的保存路径(即ac-menu.xml文件保存到服务的具体目录)/home/wangyl/1
relativePathstring文件相对于path的相对路径ac-menu.xml
totalChunkslong分片总个数10
totalSizelong文件总大小,单位:字节47196316
chunkSizelong定义每片的字节数5242880
currentChunkSizelong当前分片的大小10396

3.请求示例

cURL请求示例

shell
curl --location 'https://scnet-demo.accloud.cn/efile/openapi/v2/file/burst' \
--header 'token: <Token>' \
--form "cover=uncover" \
--form "path=/public/home/test/BASE/" \
--form "file=@/Users/Downloads/demo/Linux.pdf" \
--form "chunkNumber=1" \
--form "filename=Linux.pdf" \
--form "relativePath=Linux.pdf" \
--form "totalChunks=3" \
--form "totalSize=10396" \
--form "chunkSize=5242880"

Java请求示例

java
import okhttp3.*;
import java.io.File;

public class ChunkUploadDemo {

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

    public static void main(String[] args) throws Exception {
        OkHttpClient client = new OkHttpClient().newBuilder()
                .build();
        MediaType mediaType = MediaType.parse("application/json");
        RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
                .addFormDataPart("chunkNumber","1")
                .addFormDataPart("cover","uncover")
                .addFormDataPart("file","Linux.pdf",
                        RequestBody.create(MediaType.parse("application/octet-stream"),
                                new File("/Users/Downloads/demo/Linux.pdf")))
                .addFormDataPart("filename","Linux.pdf")
                .addFormDataPart("path","/public/home/test/BASE")
                .addFormDataPart("relativePath","Linux.pdf")
                .addFormDataPart("totalChunks","3")
                .addFormDataPart("totalSize","10396")
                .addFormDataPart("chunkSize","5242880")
                .build();
        Request request = new Request.Builder()
                .url(URL)
                .method("POST", body)
                .addHeader("Content-Type", "application/json")
                .addHeader("token", TOKEN)
                .build();
        Response response = client.newCall(request).execute();
        System.out.println(response.body().string());
    }
}

Python请求示例

python
import requests

url = "https://scnet-demo.accloud.cn/efile/openapi/v2/file/burst"
payload = {
  "chunkNumber": "1",
  "cover": "uncover",
  "filename": "Linux.pdf",
  "path": "/public/home/jsyadmin",
  "relativePath": "Linux.pdf",
  "totalChunks": "3",
  "totalSize": "10396",
  "chunkSize": "5242880"
}
files=[
    ("file",("Linux.pdf",open("/Users/Downloads/demo/Linux.pdf","rb"),"application/pdf"))
]
headers = {
    "token": "<Token>"
}

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

4.响应消息

返回参数:

名称类型描述示例
msgstring信息操作成功
codestring状态码
dataobject

返回示例:

json
{
  "code":"0",
  "data":null,
  "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文件名包含非法字符,请重命名后再操作