Object接口 > 异步第三方资源抓取 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
描述从指定 URL 抓取资源,并将该资源存储到指定空间中。每次只抓取一个文件,抓取时可以指定保存空间名和最终资源名。 发起任务
抓取动作是异步操作,接受到抓取请求后服务端直接返回成功,资源会在后台进行抓取后存入存储,并产生一个回调请求通知业务服务器(如果存在回调参数)。 因为各种原因抓取失败时会产生一个json格式的特殊回调通知业务服务器。 如果被抓取的源站屏蔽(屏蔽可能是抓取源站有 IP、UA 等限制策略)来自七牛的抓取操作,那么不能确保一定可以抓取成功。 POST请求鉴权签名需要包含Body内容
Host: api-
{"id":"<ID>","wait":<Wait>}
特殊回调消息体包含发起请求时的参数和错误信息,示例不包含所有参数 { "url" : "<url>", "bucket": "<bucket>", "key": "<key>", "md5": "<md5>", "callbackurl": "<callbackurl>", "callbackbody": "<callbackbody>", "callbackbodytype": "<callbackbodytype>", "file_type":<file_type>, "err":"<err>", "code":<code> }
查询任务
GET /sisyphus/fetch?id=<ID> HTTP/1.1 Host: api-<Zone>.qiniu.com Authorization: Qiniu <AccessToken>
{"id":"<ID>","wait":<Wait>} 示例(发起异步任务)
POST /sisyphus/fetch HTTP/1.1 Host: api-z0.qiniu.com Content-Type: application/json User-Agent: Go-http-client/1.1 Authorization: Qiniu j853F3bLkWl59I5BOkWm6q1Z1mZClpr9Z9CLfDE0:FwliyUEz-rL1rb9qVkd0xYosBng= Body: { "url" : "http://www.qiniu.com", "bucket": "test", "key": "qiniu", "callbackurl": "http://www.qiniu.com/callback", "callbackbody": "$(bucket)" }
HTTP/1.1 200 OK Content-Length: 94 Connection: keep-alive Content-Type: application/json Date: Tue, 19 Sep 2017 06:28:18 GMT Server: nginx X-Reqid: jXwAAH8259lkr-UU Body: {"id":"eyJ6b25lIjoiejAiLCJwYXJ0X2lkIjo2Mywib2Zmc2V0IjowfQ==","wait":-1} |