本教程详细介绍如何使用Alibaba Cloud SDK for Java查询加速域名所有信息。
前提条件
在使用本教程前,请确保已完成以下操作:
- 使用Alibaba Cloud SDK for Java,您需要一个阿里云账号和访问密钥(AccessKey)。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey。
- 确保您已经安装了Alibaba Cloud SDK for Java,准确的SDK版本号,请参见 阿里云开发工具包(SDK)。
<dependencies> <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.4.3</version> </dependency> <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-cdn --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-cdn</artifactId> <version>3.0.10</version> </dependency> </dependencies>
代码示例
本文操作示例主要以代码形式体现,具体代码如下:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.cdn.model.v20180510.*;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import java.util.List;
/**
* DescribeDomainCertificateInfo 获取指定加速域名证书信息
* DescribeCdnDomainDetail 获取指定加速域名配置的基本信息
* DescribeDomainsBySource 查询用户名下,源站对应的所有域名名称列表。不支持模糊匹配
* DescribeUserDomains 查询用户名下所有的域名与状态
* DescribeCdnService 查询CDN服务状态
* DescribeCdnUserResourcePackage 查询CDN用户当前流量包
*/
public class Demo {
private static String source = "****";
private static Gson gson = new Gson();
public static void main(String[] args) {
IAcsClient client = initialization();
// 查询用户名下所有的域名与状态
DescribeUserDomainsResponse describeUserDomainsResponse = describeUserDomains(client);
//
List<DescribeUserDomainsResponse.PageData> domains = describeUserDomainsResponse.getDomains();
// 获取加速域名
String domainName = domains.get(0).getDomainName();
// 查询用户名下,源站对应的所有域名名称列表。不支持模糊匹配
describeDomainsBySource(client);
// 获取指定加速域名配置的基本信息
describeCdnDomainDetail(client, domainName);
describeDomainCertificateInfo(client, domainName);
// 查询CDN服务状态
describeCdnService(client);
// 查询CDN用户当前流量包
describeCdnUserResourcePackage(client);
}
/**
* DescribeDomainCertificateInfo 获取指定加速域名证书信息
*/
private static DescribeDomainCertificateInfoResponse describeDomainCertificateInfo(IAcsClient client, String domainName) {
DescribeDomainCertificateInfoRequest request = new DescribeDomainCertificateInfoRequest();
// 加速域名
request.setDomainName(domainName);
System.out.println("------------------describeDomainCertificateInfo-------------------");
try {
DescribeDomainCertificateInfoResponse response = client.getAcsResponse(request);
System.out.println(gson.toJson(response));
return response;
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
throw new RuntimeException(e);
}
return null;
}
/**
* DescribeCdnDomainDetail 获取指定加速域名配置的基本信息
*/
private static DescribeCdnDomainDetailResponse describeCdnDomainDetail(IAcsClient client, String domainName) {
DescribeCdnDomainDetailRequest request = new DescribeCdnDomainDetailRequest();
// 加速域名
request.setDomainName(domainName);
System.out.println("------------------describeCdnDomainDetail-------------------");
try {
DescribeCdnDomainDetailResponse response = client.getAcsResponse(request);
System.out.println(gson.toJson(response));
return response;
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
throw new RuntimeException(e);
}
return null;
}
/**
* DescribeDomainsBySource 查询用户名下,源站对应的所有域名名称列表。不支持模糊匹配
*/
private static DescribeDomainsBySourceResponse describeDomainsBySource(IAcsClient client) {
DescribeDomainsBySourceRequest request = new DescribeDomainsBySourceRequest();
// 源站,多个源站用逗号(,)隔开
request.setSources(source);
System.out.println("------------------describeDomainsBySource-------------------");
try {
DescribeDomainsBySourceResponse response = client.getAcsResponse(request);
System.out.println(gson.toJson(response));
return response;
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
throw new RuntimeException(e);
}
return null;
}
/**
* DescribeUserDomains 查询用户名下所有的域名与状态
*/
private static DescribeUserDomainsResponse describeUserDomains(IAcsClient client) {
DescribeUserDomainsRequest request = new DescribeUserDomainsRequest();
// 域名查询类型:
// fuzzy_match:模糊匹配
// pre_match:前匹配
// suf_match:后匹配
// full_match: 完全匹配
// 默认值:fuzzy_match
request.setDomainSearchType("fuzzy_match");
// 域名模糊匹配过滤
// request.setDomainName("oos");
System.out.println("------------------describeUserDomains-------------------");
try {
DescribeUserDomainsResponse response = client.getAcsResponse(request);
System.out.println(gson.toJson(response));
return response;
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
throw new RuntimeException(e);
}
return null;
}
/**
* DescribeCdnService 查询CDN服务状态
*/
private static DescribeCdnServiceResponse describeCdnService(IAcsClient client) {
DescribeCdnServiceRequest request = new DescribeCdnServiceRequest();
System.out.println("------------------describeCdnService-------------------");
try {
DescribeCdnServiceResponse response = client.getAcsResponse(request);
System.out.println(gson.toJson(response));
return response;
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
throw new RuntimeException(e);
}
return null;
}
/**
* DescribeCdnUserResourcePackage 查询CDN用户当前流量包
*/
private static DescribeCdnUserResourcePackageResponse describeCdnUserResourcePackage(IAcsClient client) {
DescribeCdnUserResourcePackageRequest request = new DescribeCdnUserResourcePackageRequest();
System.out.println("------------------describeCdnUserResourcePackage-------------------");
try {
DescribeCdnUserResourcePackageResponse response = client.getAcsResponse(request);
System.out.println(gson.toJson(response));
return response;
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
throw new RuntimeException(e);
}
return null;
}
/**
* Initialization 初始化公共请求参数
*/
private static IAcsClient initialization() {
// 初始化请求参数
DefaultProfile profile = DefaultProfile.getProfile(
"<your-region-id>", // 您的可用区ID
"<your-access-key-id>", // 您的AccessKey ID
"<your-access-key-secret>"); // 您的AccessKey Secret
return new DefaultAcsClient(profile);
}
}
执行结果
正确的执行结果类似如下:
------------------describeUserDomains-------------------
{
"requestId": "9E640176-CEBA-412D-B457-B49709CE7BF5",
"pageNumber": 1,
"pageSize": 20,
"totalCount": 4,
"domains": [
{
"domainName": "videoliveoss.****.club",
"cname": "videoliveoss.****.club.w.alikunlun.com",
"cdnType": "web",
"domainStatus": "offline",
"gmtCreated": "2017-11-02T08:14:23Z",
"gmtModified": "2017-12-31T20:19Z",
"description": "沪ICP备170****号-1",
"sslProtocol": "off",
"resourceGroupId": "rg-acfm****",
"sandbox": "",
"sources": [
{
"type": "oss",
"content": "videolive1.****.aliyuncs.com",
"port": 80,
"priority": "20",
"weight": "10"
}
]
}
]
}
------------------describeDomainsBySource-------------------
{
"requestId": "D38EEB4C-1086-47A8-93B9-0A0AF12E4BD3",
"sources": "videolive1.****.aliyuncs.com",
"domainsList": [
{
"source": "videolive1.****.aliyuncs.com",
"domainInfos": [
{
"domainName": "videoliveoss.****.club",
"domainCname": "videoliveoss.****.club.w.alikunlun.com",
"createTime": "2017-11-02T16:14:23+08:00",
"updateTime": "2017-12-31T20:19:40+08:00",
"status": "offline"
}
],
"domains": [
"videoliveoss.****.club"
]
}
]
}
------------------describeCdnDomainDetail-------------------
{
"requestId": "94CDE19C-B451-4C5A-92E7-D71DE9F04AEC",
"getDomainDetailModel": {
"domainName": "video005.aliyuntest.club",
"cname": "video005.****.club.w.alikunlun.com",
"domainStatus": "online",
"cdnType": "web",
"gmtCreated": "2019-09-10T02:43:31Z",
"gmtModified": "2019-09-10T10:45Z",
"resourceGroupId": "rg-acf****y",
"description": "",
"scope": "domestic",
"sourceModels": [
{
"content": "video006.****.club",
"type": "domain",
"port": 80,
"enabled": "online",
"priority": "20",
"weight": "10"
}
]
}
}
------------------describeDomainCertificateInfo-------------------
{
"requestId": "A28DC42C-97A1-4D7A-8146-C601566E8264",
"certInfos": [
{
"domainName": "video005.****.club",
"certName": "",
"certDomainName": "",
"certExpireTime": "",
"certLife": "",
"certOrg": "",
"certType": "",
"serverCertificateStatus": "off",
"status": "",
"serverCertificate": "",
"certUpdateTime": "",
"certStartTime": "",
"domainCnameStatus": "ok"
}
]
}
------------------describeCdnService-------------------
{
"requestId": "9C2F4F67-8388-4BAA-82A0-325ECEE3E2C9",
"instanceId": "1231579085529123",
"internetChargeType": "PayByTraffic",
"openingTime": "2017-03-22T06:02:12Z",
"changingChargeType": "PayByTraffic",
"changingAffectTime": "2017-03-22T06:02:11Z",
"operationLocks": [...]
}
------------------describeCdnUserResourcePackage-------------------
{
"requestId": "558919B3-FBED-4AA4-A920-9BB948487608",
"resourcePackageInfos": [...]
}