融合 CDN

  • 文件预取与查询

    最近更新时间:2017-06-27 16:55:17

    文件预取,也可称为预加热或预缓存,是指客户新资源提前由 CDN 拉取到 CDN 缓存节点。具体做法是客户提交资源 url 到 CDN,由 CDN 来操作预取。

    访问域名

    Host: fusion.qiniuapi.com
    

    认证授权

    Authorization: <access_token>
    

    access_token 详细描述请查阅这里

    预取

    接口地址

    /v2/tune/prefetch
    

    请求语法

    POST /v2/tune/prefetch HTTP/1.1
    Authorization:<access_token>
    Content-Type: application/json
    
    {
        "urls": [<url1>, <url2>, <url3>, ......]
    }
    

    请求内容

    参数 类型 说明
    urlN array 要预取的单个url列表,总数不超过100条;单个url,即一个具体的url,例如:http://bar.foo.com/test.zip

    注意事项

    • 请输入资源 url 完整的绝对路径,由 http:// 或 https:// 开始。
    • 资源 url 不支持通配符,例如:不支持 http://www.test.com/abc/\*.\*

    响应状态码

    HTTP状态码 含义 说明
    400031 invalid url 请求中存在无效的 url,请确保提交的 url 格式正确
    400032 invalid host 请求中存在无效的域名,请确保域名格式正确
    400033 prefetch url limit error 请求次数超出当日预取限额
    400036 invalid request id 无效的请求 id
    400037 url has existed url 正在预取中
    500000 internal error 服务端内部错误,请联系技术支持

    响应内容

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "code": <custom code>,
        "error": <error string>,
        "requestId": <request id>,
        "invalidUrls": [<url1>, <url2>, <url3>, ...],
        "quotaDay": <quota one day >,
        "surplusDay": <surplus one day >,
    }
    
    参数 类型 必要性 说明
    code int 必须 HTTP 状态码,整型,见响应状态码
    error string 必须 HTTP 状态码说明,字符串
    requestId string 可选 预取请求 id,只有在任务被接受时才有值
    invalidUrls string array 可选 无效的 url 列表
    quotaDay int 可选 每日的预取 url 限额
    surplusDay int 可选 每日的当前剩余的预取 url 限额

    注意事项

    • 在请求成功时 code 为 200,requestId、quotaDay、surplusDay 才会有有效值,否则为空。
    • 在请求失败时 code 为非 200,error 中包含描述信息。

    预取示例

    下面是命令行示例:

    分两步:
    第一步生成token,如下:
    echo "/v2/tune/prefetch" |openssl dgst -binary -hmac "用户SK" -sha1 |base64 | tr + - | tr / _      回车
    生成的token
    
    第二步请求数据:
    curl -X POST -H "Authorization: QBox <用户AK>:<生成的token>" http://fusion.qiniuapi.com/v2/tune/prefetch -d '{"urls":["<用户url>"]}' -H 'Content-Type: application/json'
    
    例如:
    curl -X POST -H 'Authorization: QBox YqrPL0n2tdA3wdDH8jLuvo9vazefJYgks4oYwmwV:oaL_oMGs5iU_lPQdfgrb223GbrQ=' http://fusion.qiniuapi.com/v2/tune/prefetch -d '{"urls":["http://www.test.com/test01"]}' -H 'Content-Type: application/json'
    
    {"code":200,"error":"success","requestId":"577471ace3ab3a030c058972","invalidUrls":null,"quotaDay":100,"surplusDay":99}
    

    预取查询

    接口地址

    /v2/tune/prefetch/list
    

    请求语法

    POST http://<Host>/v2/tune/prefetch/list
    Authorization:<access_token>
    
    {
        "requestId": <request id>, 
        "urls":[<url1>, <url2>, <url3>, ...],
        "state": <state>,
        "pageNo": <page no>,
        "pageSize": <page size>,
    }
    

    请求内容

    参数 类型 说明
    requestId string 指定要查询记录所在的预取请求id。
    urls string 要查询的url列表
    state string 指定要查询记录的状态,取值processing/success/failure。
    pageNo int 要求返回的页号,默认为0。
    pageSize int 要求返回的页长度,默认为100。

    注意事项

    • 输入参数可选部分全部为空时,服务端返回无效参数错误。

    响应状态码

    HTTP状态码 含义 说明
    200 success 成功
    400000 invalid input 无效的输入参数
    500000 internal error 服务端内部错误
    500005 query data error 服务端查询数据错误

    响应内容

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "code": <custom code>,
        "error": <error string>,
        "total": <total count>,
        "pageNo": <page no>,
        "pageSize": <page size>,
        "currentSize": <current size>,
        "items": [{
            "uid": <user uid>,
            "requestId": <request id>,
            "url": <url>,
            "state": <state>,
            "stateDetail": <stateDetail>,
            "createAt": <create time>,
            "beginAt": <begin time>,
            "endAt": <end time>,
        }, ...],
    }
    
    参数 类型 必要性 说明
    code int 必须 自定义错误码,整型,见自定义状态码
    error string 必须 自定义错误码描述,字符串
    total int 可选 当前条件下查询的记录总数
    pageNo int 可选 要查询的页号
    pageSize int 可选 要返回的页长度
    currentSize int 可选 当前实际返回的页长度
    uid int 可选 用户id
    requestId string 可选 记录所在的预取请求id
    url string 可选 url
    state string 可选 预取状态,取值为success/processing/failure
    stateDetail string 可选 预取状态描述信息
    createAt string 可选 当前记录创建时间,格式为xxxx-xx-xx xx:xx:xx,例如2015-11-01 16:05:05
    beginAt string 可选 当前记录开始时间,格式为xxxx-xx-xx xx:xx:xx,例如2015-11-01 16:05:25。
    endAt string 可选 当前记录结束时间,格式为xxxx-xx-xx xx:xx:xx,例如2015-11-01 16:09:05。

    预取查询示例

    下面是命令行示例:

    分两步:
    第一步生成token,如下:
    echo "/v2/tune/prefetch/list" |openssl dgst -binary -hmac "用户SK" -sha1 |base64 | tr + - | tr / _      回车
    生成的token
    
    第二步请求数据:
    curl -X POST -H "Authorization: QBox <用户AK>:<生成的token>" http://fusion.qiniuapi.com/v2/tune/prefetch/list -d '{"urls":["<用户url>","pageNo":<page no>,"pageSize":<page size>]}' -H 'Content-Type: application/json'
    
    例如:
    curl -X POST -H 'Authorization: QBox YqrPL03daf23rfaDH8jLuvo9vazefJYgks4oYwmwV:oaL_oMyU32lC_lPQdfgrb223GbrQ=' http://fusion.qiniuapi.com/v2/tune/prefetch/list -d '{"urls":["http://www.test.com/test01",“pageSize”:10, "pageNo":0]}' -H 'Content-Type: application/json'
    
    {"code":200,"error":"success","total":1,"pageNo":0,"pageSize":10,"currentSize":1,"items":[{"uid":1100000009,"requestId":"57edcafafawwqtqt211e303b","url":"http://www.test.com/test01","state":"success","stateDetail":"","createAt":"2015-09-11 10:29:46","beginAt":"2015-11-30 10:29:48","endAt":"2015-11-30 10:30:08"}]}
    
    以上内容是否对您有帮助?
  • Icon free helper
    Close