离线下载种子文件
STEP 1. 上传种子文件
- 上传种子文件接口、流程均与上传普通文件一致。
- 获取token的时候指定parent为
:torrent
可以将文件传到系统默认的种子文件夹。
示例:
1.1 获取上传token和上传url
POST
/v1/store/token
- 请求地址 /v1/store/token
POST
- 请求方式 JSON/Http POST
- 请求参数
参数 | 类型 | 描述 |
---|---|---|
* name | string | 文件名 |
* hash | string | 文件哈希. 如果文件存在则自动创建文件 |
* parent | string | 上传的父路径的uuid(可选). 默认为根目录(‘’) |
* path | string | 上传路径(可选) 默认为根目录(‘’),建议默认指定为 :torrent |
- 返回参数
参数 | Type | Description |
---|---|---|
uploadUrl | string | 上传地址 |
type | int | 上传的类型 |
token | string | the upload token of the file |
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":":torrent",
"hash":"lgYD1AjrK5Daxq-Dt0qemSPKdNbh",
"name":"幸运星.torrent"
}
服务器返回:
{
"status": 200,
"result": {
"uuid": "0233a0a43b594fab8890b2f8359595bd",
"storeId": "lgYD1AjrK5Daxq-Dt0qemSPKdNbh",
"userId": 5,
"pathId": "f2624b13bfdce9efbc842bd30f764e69",
"lft": 6,
"rgt": 7,
"path": ":torrent",
"name": "幸运星.torrent",
"ext": ".torrent",
"size": 5458017,
"parent": "06f14e9508a44fc8993fa97faebc55e0",
"type": 0,
"atime": 1532794215590,
"ctime": 1532794215590,
"mtime": 0,
"version": 0,
"locking": false
},
"code": "OK",
"success": true,
"token": "..."
}
如果文件不存在,使用token字段上传文件:
参阅网宿相关文档完成上传。
无论是秒传还是网宿上传,均能获取到文件 uuid
。如果是使用网宿云存储上传的
能获取到如下返回:
{
"hash": "FjwX_Wre8mgCuhJ0SNFe-JNXl0pL",
"response": "{\"status\":200,\"result\":{\"uuid\":\"3e33a14cb19e40583b67369af3cb2d37\",\"storeId\":\"FjwX_Wre8mgCuhJ0SNFe-JNXl0pL\",\"userId\":5,\"size\":139885,\"parent\":\"146\",\"mime\":\"application/x-bittorrent\",\"type\":0,\"atime\":1519707239269,\"mtime\":1519707239269,\"ctime\":1519707239269,\"alias\":\"\",\"name\":\"【华盟字幕社&元古I.G部落】Lucky☆Star幸运星.rename.161d59c33d9.torrent\",\"ext\":\"\",\"preview\":\"2\",\"flag\":0,\"recycle\":0},\"code\":\"OK\",\"success\":true}"
}
二次解析response字段,获取 uuid。
STEP 2. 预解析种子文件
- 种子文件内容需要预解析才能确定。
POST
/v1/offline/parseTorrent
或者{
"uuid":"3e33a14cb19e40583b67369af3cb2d37"
}
{
"path":":torrent/a.torrent"
}
收到服务器回复:
```json
{
"status": 200,
"result": {
"taskHash": "ZXlKcGJtWnZTR0Z6YUNJNkltTmlNVGhoTjJNelltVmxaREJqWmpjeU4yWm1Nek01WVdObVl6Vm1OREl6Tnpsak56ZzNZV1lpTENKdVlXMWxJam9pWTJJeE9HRTNZek5pWldWa01HTm1OekkzWm1Zek16bGhZMlpqTldZME1qTTNPV00zT0RkaFppSXNJblJoYzJ0SlpDSTZJbU5pTVRoaE4yTXpZbVZsWkRCalpqY3lOMlptTXpNNVlXTm1ZelZtTkRJek56bGpOemczWVdZaUxDSjBlWEJsSWpvek1Dd2lkWEpzSWpvaWJXRm5ibVYwT2o5NGREMTFjbTQ2WW5ScGFEcGpZakU0WVRkak0ySmxaV1F3WTJZM01qZG1aak16T1dGalptTTFaalF5TXpjNVl6YzROMkZtSW4wLi5xenktc3AtdG9rZW5ANmNzOTJkLXRva2VuLjY0ZDBiZTIxMDdjNTBhNzJkNDUzNmUyZjA4NGYzMzMw",
"name": "Deadpool.2.2018.Super.Duper.Cut.UNRATED.1080p.BluRay.x264.DTS-HD.MA.7.1-HDC",
"server": false,
"files": [
{
"path": "/Deadpool.2.2018.Super.Duper.Cut.UNRATED.1080p.BluRay.x264.DTS-HD.MA.7.1-HDC/Deadpool.2.2018.Super.Duper.Cut.UNRATED.1080p.BluRay.x264.DTS-HD.MA.7.1-HDC.mkv",
"size": 20928909499,
"order": 1
},
{
"path": "/Deadpool.2.2018.Super.Duper.Cut.UNRATED.1080p.BluRay.x264.DTS-HD.MA.7.1-HDC/English.srt",
"size": 149634,
"order": 2
},
{
"path": "/Deadpool.2.2018.Super.Duper.Cut.UNRATED.1080p.BluRay.x264.DTS-HD.MA.7.1-HDC/RARBG.txt",
"size": 31,
"order": 3
}
]
},
"code": "OK",
"success": true,
"token": "..."
}
STEP3. 发起下载请求
POST
/v1/offline/start
```json { “taskHash”:”ZXlKcGJtWnZTR0Z6YUNJNkltTmlNVGhoTjJNelltVmxaREJqWmpjeU4yWm1Nek01WVdObVl6Vm1OREl6Tnpsak56ZzNZV1lpTENKdVlXMWxJam9pWTJJeE9HRTNZek5pWldWa01HTm1OekkzWm1Zek16bGhZMlpqTldZME1qTTNPV00zT0RkaFppSXNJblJoYzJ0SlpDSTZJbU5pTVRoaE4yTXpZbVZsWkRCalpqY3lOMlptTXpNNVlXTm1ZelZtTkRJek56bGpOemczWVdZaUxDSjBlWEJsSWpvek1Dd2lkWEpzSWpvaWJXRm5ibVYwT2o5NGREMTFjbTQ2WW5ScGFEcGpZakU0WVRkak0ySmxaV1F3WTJZM01qZG1aak16T1dGalptTTFaalF5TXpjNVl6YzROMkZtSW4wLi5xenktc3AtdG9rZW5ANmNzOTJkLXRva2VuLjY0ZDBiZTIxMDdjNTBhNzJkNDUzNmUyZjA4NGYzMzMw”, “copyFile”:[1,2], “savePath”:”/download/movie” }
收到
{
"status": 200,
"result": {
"userId": 5,
"taskId": "cb18a7c3beed0cf727ff339acfc5f42379c787af",
"copyFile": "",
"copiedFile": "1,2",
"createTime": 1533833699329,
"savePath": "/download/movie",
"filePath": "",
"copied": 0
},
"code": "OK",
"success": true,
"token": "..."
}