七牛---關於刷新接口的具體使用說明

很多用戶有需求刷新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);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章