上传文件是一个比较复杂的过程,具体可以参照网宿云存储。
POST /v1/store/token
- 请求地址 /v1/store/token
POST
- 请求方式 JSON/Http POST
- 请求参数
参数 | 类型 | 描述 |
---|---|---|
* name | string | 文件名 |
* hash | string | 文件哈希. 如果文件存在则自动创建文件 |
* parent | string | 上传的父路径的uuid(可选). 默认为根目录('') |
* path | string | 上传路径(可选) 默认为根目录('') |
* originalFilename | string | 原始文件名 |
-
当name和path都不为空时,服务器上实际生成的文件为 ${path}/${name}
-
当name和path全部为空时,服务器上实际生成的文件为 /${originalFilename}
-
当name和path以及orignalFilename全部为空时,服务器上实际生成的文件为 /${某随机文件名}.tmp
-
当name为空,path不为空时,尝试按如下规则生成文件:
1. path 在服务器上已经存在,且为文件夹,尝试在该文件夹下面创建{originalFilename}的文件
2. path 在服务器上已经存在,且为文件,忽略创建过程
3. path 在服务器上不存在,尝试创建{path}的文件
- 返回参数
参数 | Type | Description |
---|---|---|
uploadUrl | string | 上传地址 |
type | int | 上传的类型 |
token | string | 上传token |
version | int | 上传token的版本号 |
服务器返回:
{
"status": 200,
"result": {
"userId": 1,
"token": "0a3836b4ef298e7dc9fc5da291252fc4ac3e0c7f:Zjk2YWUzYTc4NWM1MWM1ZjllYjVmYmNiM2Q4MWYwMTAyZGIzYjk0ZA==:eyJzY29wZSI6Im90aGVyLXN0b3JhZ2UiLCJkZWFkbGluZSI6IjE1MTczNzMzNDM4OTEiLCJvdmVyd3JpdGUiOjEsImZzaXplTGltaXQiOjAsImNhbGxiYWNrVXJsIjoiaHR0cDovL2FwaS5ibG9nMTIwLmNvbS92MS9jYWxsYmFjay93cy9wb3N0IiwiY2FsbGJhY2tCb2R5Ijoic2l6ZT0kKGZzaXplKSZoYXNoPSQoaGFzaCkma2V5PSQoa2V5KSZtaW1lVHlwZT0kKG1pbWVUeXBlKSZpcD0kKGlwKSZhdmluZm89JChhdmluZm8pJmJ1Y2tldD0kKGJ1Y2tldCkmdXJsPUBxenl1cmxzdGFydCQodXJsKUBxenl1cmxlbmQmdXNlcklkPTEmZmlsZU5hbWU9QHF6eWZpbGVzdGFydCQoZm5hbWUpQHF6eWZpbGVlbmQiLCJzYXZlS2V5IjoidXNlci11cGxvYWQvLzIwMTgwMTMwLzExNTE3Mjg2OTQzODkyLnRtcCJ9",
"type": 0,
"uploadUrl": "http://xxx.xxx.com/file/upload",
"version": 1
},
"code": "OK",
"success": true,
"token": "..."
}
result 字段下 token 为上传所需token
当传入了文件的hash的时候,即表示开启秒传功能。 如果服务器上文件不存在,则正常返回上传token。如果服务器上文件存在,则返回新创建的文件信息,如:
post /v1/store/token
:
{
"path":"/d/e/f/g",
"hash":"lgYD1AjrK5Daxq-Dt0qemSPKdNbh",
"name":"5系标轴2.0.pdf.asset.1518484456597.pdf"
}
服务器返回:
{
"status": 200,
"result": {
"uuid": "0233a0a43b594fab8890b2f8359595bd",
"storeId": "lgYD1AjrK5Daxq-Dt0qemSPKdNbh",
"userId": 5,
"pathId": "f2624b13bfdce9efbc842bd30f764e69",
"lft": 6,
"rgt": 7,
"path": "/d/e/f/g/5系标轴2.0.pdf.asset.1518484456597.pdf",
"name": "5系标轴2.0.pdf.asset.1518484456597.pdf",
"ext": ".pdf",
"size": 5458017,
"parent": "06f14e9508a44fc8993fa97faebc55e0",
"type": 0,
"atime": 1532794215590,
"ctime": 1532794215590,
"mtime": 0,
"version": 0,
"locking": false
},
"code": "OK",
"success": true,
"token": "..."
}
如果文件不存在,使用token字段上传文件。
服务器返回
{
"status": 200,
"result": {
"name": "qzy-upload-noname.1519706748282.tmp",
"parent": ":torrent",
"token": "0a3836b4ef298e7dc9fc5da2912...",
"type": 0,
"uploadUrl": "http://upload-vod-v1.6pan.cn",
"version": 1
},
"code": "OK",
"success": true,
"token": "..."
}
参照云存储文档上传文件。