阿里雲CDN重新整理預熱介面-黑科技
阿新 • • 發佈:2019-02-10
一般追求體驗和速度的網站都會使用CDN技術,下面就說一下常用的阿里雲CDN,但是CDN就不可避免的需要去重新整理指定檔案或者資料夾的快取,但阿里雲後臺的管理員賬號密碼不是一般人能訪問的,手動重新整理效率也很低,所以往往需要專案裡可以直接重新整理CDN快取。
你以為就這一點點引數就可以了嗎?你們可以看看這位仁兄寫的程式碼
為什麼那位仁兄寫這麼多程式碼呢,主要是為了這些公共引數,阿里云為了規範和驗證請求合法性,肯定會給你一大堆驗證,所以肯定需要多重驗證,那為什麼我敢說我的實現是黑科技呢?主要是程式碼少,容易理解,廢話不多說,下面教你如何實現快速實現後臺重新整理阿里雲CDN介面。
因為公司伺服器部署在阿里雲上,能很快的訪問阿里雲伺服器,所以直接用阿里雲的maven私服,直接去下載jar包,當然你也可以先下載好上傳到自己公司私服上。阿里雲私服
附上賊快的阿里雲maven倉庫
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf >
</mirror>
<repositories><!-- 程式碼庫 -->
<repository>
<id>maven-ali</id>
<url>http://maven.aliyun.com/nexus/content/groups/public//</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
</repositories>
這個是阿里雲文件的配置,用哪個都行
<repositories>
<repository>
<id>sonatype-nexus-staging</id>
<name>Sonatype Nexus Staging</name>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-cdn</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>3.0.8</version>
</dependency>
黑科技就在下載的這兩個包裡,接著你只寫上下面那段程式碼就可以呼叫重新整理CDN快取了
package com.galaxy.wgroup.common.utils;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.cdn.model.v20141111.RefreshObjectCachesRequest;
import com.aliyuncs.cdn.model.v20141111.RefreshObjectCachesResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
/**
* Created by fengyiming on 2016/9/20.
*/
public class AliyunCdnUtlis {
//阿里雲管理員賬號給你生成的key和value
private final static String ACCESS_KEY_ID = "YOUR_KEY";
private final static String ACCESS_KEY_VALUE = "YOUR_KEY_VALUE";
private final static String OBJECT_TYPE_FILE = "File";
private final static String OBJECT_TYPE_DIRECTORY = "Directory";
/**
* 重新整理一個檔案
* @param url
* @return
*/
public static RefreshObjectCachesResponse reflushFileCDN(String url) {
RefreshObjectCachesRequest describe = new RefreshObjectCachesRequest();
describe.setObjectPath(url);
describe.setObjectType(OBJECT_TYPE_FILE);
return reflush(describe);
}
/**
* 重新整理資料夾
* @param packageUrl
* @return
*/
public static RefreshObjectCachesResponse reflushPackageCDN(String packageUrl) {
RefreshObjectCachesRequest describe = new RefreshObjectCachesRequest();
describe.setObjectPath(packageUrl);
describe.setObjectType(OBJECT_TYPE_DIRECTORY);
return reflush(describe);
}
private static RefreshObjectCachesResponse reflush(RefreshObjectCachesRequest describe){
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", ACCESS_KEY_ID, ACCESS_KEY_VALUE);
IAcsClient client = new DefaultAcsClient(profile);
try {
RefreshObjectCachesResponse response
= client.getAcsResponse(describe);
return response;
} catch (ClientException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
是不是很方便,當然刷CDN你得注意阿里雲後臺設定要正確,不然光能在阿里雲後臺看到重新整理請求單沒起作用。
記得當初公司網站的CDN回源比例特別高,跟運維調查了很久,有時候還得去提個工單問問專業的人如何設定阿里雲CDN快取。