文件
分片文件上传
1.接口说明
接口路径:/efile/openapi/v2/file/burst
请求方式:POST
请求数据类型:multipart/form-data
接口描述:分片上传文件,可以更快地上传文件
2.请求消息
请求参数:
Headers:
名称 | 类型 | 必填 | 描述 | 示例 |
---|---|---|---|---|
token | string | 是 | 接口凭证 | eyJhbGciOiJIUzI1N... |
参数:
名称 | 类型 | 必填 | 描述 | 示例 |
---|---|---|---|---|
chunkNumber | long | 是 | 当前分片序号,文件不分片时默认为1 | 10 |
cover | string | 否 | 参数值,cover:强制覆盖旧文件,uncover:不覆盖旧文件;默认值为uncover | uncover |
file | File | 是 | 一个图片或文件,需用post multipart/form-data方式上传 | file=@"ac-menu.xml" |
filename | string | 是 | 文件名(relativePath中已包含) | ac-menu.xml |
identifier | string | 否 | 文件标识 | 10396-ac-menuxml |
path | string | 是 | 文件的保存路径(即ac-menu.xml文件保存到服务的具体目录) | /home/wangyl/1 |
relativePath | string | 是 | 文件相对于path的相对路径 | ac-menu.xml |
totalChunks | long | 是 | 分片总个数 | 10 |
totalSize | long | 是 | 文件总大小,单位:字节 | 47196316 |
chunkSize | long | 否 | 定义每片的字节数 | 5242880 |
currentChunkSize | long | 否 | 当前分片的大小 | 10396 |
3.请求示例
cURL请求示例
curl --location 'https://api01.xxx.com:65103/efile/openapi/v2/file/burst' \
--header 'token: esdfIsInR5cCI6IkpXVCJ9.eyJjb21wdXRlVXNlciI6ImpzeWFkbWluIiwiYWNjb3VudFN0YXR1cyI6Ik93ZSIsImNyZWF0b3IiOiJhYyIsInJvbGUiOiIxIiwiZXhwaXJlVGltZSI6IjE3MDA1NDc2NzQxODgiLCJjbHVzdGVySWQiOiIxMTI1MCIsImludm9rZXIiOiJiN2I5NjViNjZkM2IzNWJjMTQ0ZDI5YWY1MWUxNjFhMSIsInVzZXIiOiJqc3lhZG1pbiIsInVzZXJJZCI6IjIxOTI1OTExMzgwIn0.Q1GcEhGAhKiAoZQEABY27uE1oHYqS3szAEMngv_cOc0' \
--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请求示例
import okhttp3.*;
import java.io.File;
public class ChunkUploadDemo {
public static final String TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb21wdXRlVXNlciI6InNsdXJtdGVzdCIsImFjY291bnRTdGF0dXMiOiJUcmlhbCIsImNyZWF0b3IiOiJhYyIsInJvbGUiOiIxIiwiZXhwaXJlVGltZSI6IjE2ODY5MDg1MDkyMzEiLCJjbHVzdGVySWQiOiIxMTExMiIsImludm9rZXIiOiI2MDQ4Y2U3YmExNWMyYWYyZThjZWMxMjk5MWVjMTNjZiIsInVzZXIiOiJzbHVybXRlc3QiLCJ1c2VySWQiOiIxMTY1NTA0ODU0MSJ9.U7pZKgO_K6NuRwOWPxblDfgRpGeVxS-BYieOdLhGDK4";
public static final String URL = "https://api01.xxx.com:65103/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请求示例
import requests
url = "https://api01.xxx.com:65103/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': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb21wdXRlVXNlciI6ImpzeWFkbWluIiwiYWNjb3VudFN0YXR1cyI6Ik93ZSIsImNyZWF0b3IiOiJhYyIsInJvbGUiOiIxIiwiZXhwaXJlVGltZSI6IjE3MDAwOTc1MzYxNjQiLCJjbHVzdGVySWQiOiIxMTI1MCIsImludm9rZXIiOiJiN2I5NjViNjZkM2IzNWJjMTQ0ZDI5YWY1MWUxNjFhMSIsInVzZXIiOiJqc3lhZG1pbiIsInVzZXJJZCI6IjIxOTI1OTExMzgwIn0.0lfIs4G8jvrcVI4804pvI3fDJ4uVwFs6AkXgJvuUGF4'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
4.响应消息
返回参数:
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
msg | string | 信息 | 操作成功 |
code | string | 状态码 | |
data | object |
返回示例:
{
"code": "0",
"data": null,
"msg": "success"
}
5.错误码
错误码 | 说明 |
---|---|
0 | 成功 |
10001 | 内部异常(其他异常) |
10003 | 参数不全 |
10004 | 参数无效 |
10009 | 不支持的版本 |
911009 | 区域用户不存在 |
911020 | 文件不存在 |
911021 | 文件已存在 |
911022 | 目标地址不是一个文件夹 |
911025 | 分享文件已存在,请重命名后分享 |
911029 | 文件路径包含特殊字符,请重命名后再操作 |
911030 | 权限不足,禁止操作 |
911031 | 文件重命名失败 |
911034 | 分享链接创建失败,请重新分享 |
911404 | ac认证服务端连接异常 |
911406 | 服务端token认证异常,未取到关联用户 |
911501 | 存储空间不足 |
911502 | 目录非空,操作失败 |
911504 | 命令执行超时 |
911505 | 文件大小超出预设大小,无法预览 |
911506 | 文件类型不在预设范围内,不允许打开 |
911507 | 源文件与目标文件一致,禁止操作 |
911700 | 文件名包含非法字符,请重命名后再操作 |