七牛---关于刷新接口的具体使用说明

来源:互联网 发布:ecshop手机商城源码 编辑:程序博客网 时间:2024/06/06 02:04

很多用户有需求刷新CDN缓存接口的需求,七牛这边提供了具体的刷新的接口,可以参考:
http://7xofkx.com5.z0.glb.clouddn.com/%E4%B8%83%E7%89%9BCDN%E5%88%B7%E6%96%B0%E6%8E%A5%E5%8F%A3V2.pdf

这里提供一个JAVA生成访问凭证、发送POST请求以及curl模拟POST请求的示例:

以下是使用HttpClient发送POST请求的例子,当然也可以用okhttp来发送请求:

package com.dxy.demo;import java.io.IOException;import java.nio.charset.Charset;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpPost;import org.apache.http.entity.StringEntity;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;import com.qiniu.api.auth.digest.Mac;import com.qiniu.api.config.Config;public class QiniuUpload {    public static void main(String[] args) throws Exception{        Config.ACCESS_KEY = "xxxxxx";        Config.SECRET_KEY = "xxxxxx";        Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);        String signingStr  = "/refresh\n";        String access_token = auth.sign(signingStr);        System.out.println(access_token);        String url = "http://fusion.qiniuapi.com/refresh";        HttpClient client = new DefaultHttpClient();        HttpPost httpPost = new HttpPost(url);        httpPost.addHeader("Authorization", "QBox "+access_token);        httpPost.addHeader("Content-Type", "application/json");        String param = "{\"urls\":[\"http://xxx.com2.z0.glb.qiniucdn.com/123.txt\"]}";        StringEntity entity = new StringEntity(param, Config.CHARSET);        httpPost.setEntity(entity);        HttpResponse response;        try {            response= client.execute(httpPost);            if (response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){                String content = EntityUtils.toString(response.getEntity());                                            System.out.println(content);            }else{                System.out.println("failed "+response.toString());            }        } catch (ClientProtocolException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }     }    }

可以看到返回的成功信息截图如下:
这里写图片描述

另外得到刷新凭证后也可以使用curl来模拟发送POST请求,具体命令如下:

curl -X POST "http://fusion.qiniuapi.com/refresh" -H "Authorization:QBox xxxxxxxxxxxxxx:FfoeL:RNSUeUBGKDiZPdBpSdRnVrJHGhw=" -H "Content-Type: application/json" -d '{"urls":["http://7xl4cg.com2.z0.glb.qiniucdn.com/123.txt"]}'

返回的成功的截图如下:
这里写图片描述

另外,对于sdk6xx的用户,刷新的方法也是一样的,只是生成刷新token的方法不一样,具体生成token的方法的代码如下:

public static void main(String[] args) throws Exception{        Config.ACCESS_KEY = "xxxxx";        Config.SECRET_KEY = "xxxxx";        Mac mac = new Mac(Config.ACCESS_KEY, Config.SECRET_KEY);              String signingStr  = "/refresh\n";        String access_token = mac.sign(signingStr.getBytes(Charset.forName("utf-8")));        System.out.println(access_token);}
1 0
原创粉丝点击