本教程详细介绍如何使用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.DescribeCdnDomainLogsRequest;
import com.aliyuncs.cdn.model.v20180510.DescribeCdnDomainLogsResponse;
import com.aliyuncs.cdn.model.v20180510.DescribeDomainRealTimeSrcBpsDataRequest;
import com.aliyuncs.cdn.model.v20180510.DescribeDomainRealTimeSrcBpsDataResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
/**
* DescribeCdnDomainLogs 获取指定域名的原始访问日志的下载地址
* DescribeDomainRealTimeSrcBpsData 获取域名1分钟粒度回源带宽数据
*/
public class Demo {
// 域名
private static String domainName = "www.yourDomainName.com";
public static void main(String[] args) {
Gson gson = new Gson();
IAcsClient client = initialization();
try {
// 获取指定域名的原始访问日志的下载地址
DescribeCdnDomainLogsResponse describeCdnDomainLogsResponse = describeCdnDomainLogs(client);
System.out.println(gson.toJson(describeCdnDomainLogsResponse));
//获取域名1分钟粒度回源带宽数据
DescribeDomainRealTimeSrcBpsDataResponse describeDomainRealTimeSrcBpsDataResponse = describeDomainRealTimeSrcBpsData(client);
System.out.println(gson.toJson(describeDomainRealTimeSrcBpsDataResponse));
} 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());
}
}
/**
* DescribeDomainRealTimeSrcBpsData 获取域名1分钟粒度回源带宽数据
*/
private static DescribeDomainRealTimeSrcBpsDataResponse describeDomainRealTimeSrcBpsData(IAcsClient client) throws ClientException {
System.out.println("------------------describeDomainRealTimeSrcBpsData-------------------");
DescribeDomainRealTimeSrcBpsDataRequest request = new DescribeDomainRealTimeSrcBpsDataRequest();
// 需要查询的加速域名,多个用逗号(,)隔开。
// 不填该参数,代表查询当前用户下所有域名。
request.setDomainName(domainName);
// 获取数据起始时间点。
// 日期格式按照ISO8601表示法,并使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。
// 不写默认读取过去1小时数据。
request.setStartTime("2019-08-21T08:00:00Z");
// 获取数据的结束时间点。
// 结束时间需大于起始时间。
// 日期格式按照ISO8601表示法,并使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。
request.setEndTime("2019-09-21T08:00:00Z");
return client.getAcsResponse(request);
}
/**
* DescribeCdnDomainLogs 获取指定域名的原始访问日志的下载地址
*/
private static DescribeCdnDomainLogsResponse describeCdnDomainLogs(IAcsClient client) throws ClientException {
System.out.println("------------------describeCdnDomainLogs-------------------");
DescribeCdnDomainLogsRequest request = new DescribeCdnDomainLogsRequest();
// 域名,只支持单个查询
request.setDomainName(domainName);
// 获取日志起始时间点
// 日期格式按照ISO8601表示法,并使用UTC时间
request.setStartTime("2019-08-21T08:00:00Z");
// 获取日志结束时间。结束时间需大于起始时间,起止时间和结束时间,间隔不超过一年。
// 获取日期格式按照ISO8601表示法,并使用UTC时间。
request.setEndTime("2019-09-21T08:00:00Z");
return client.getAcsResponse(request);
}
/**
* 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);
}
}
执行结果
正确的执行结果类似如下:
------------------describeCdnDomainLogs-------------------
{
"requestId": "88BCFA39-0394-467E-BFBC-6C7D02B717BC",
"domainLogDetails": [
{
"domainName": "",
"logCount": 0,
"pageInfos": [],
"logInfos": []
}
]
}
------------------describeDomainRealTimeSrcBpsData-------------------
{
"requestId": "FEBDDB8E-C3D9-4B12-87C2-46C88C98B392",
"domainName": "vid****.****.club",
"startTime": "2019-08-21T08:00:00Z",
"endTime": "2019-09-21T08:00:00Z",
"dataInterval": "86400",
"realTimeSrcBpsDataPerInterval": [
{
"timeStamp": "2019-08-21T16:00:00Z",
"value": "0"
},
{
"timeStamp": "2019-08-22T16:00:00Z",
"value": "0"
},
{
"timeStamp": "2019-08-23T16:00:00Z",
"value": "0"
}
]
}
在文档使用中是否遇到以下问题
更多建议
匿名提交