点播CDN

本篇文档提供了Java SDK点播CDN模块相关功能的API调用示例。包含预热缓存、刷新缓存、查询刷新和预热状态、查询刷新预热次数限制和余量、查询流量数据、查询网络带宽、下载域名日志。

初始化客户端

使用前请先初始化客户端,请参见初始化

预热缓存

调用PreloadVodObjectCaches接口,完成预热缓存功能。

接口参数和返回字段请参见PreloadVodObjectCaches。调用示例如下:

import com.aliyuncs.vod.model.v20170321.PreloadVodObjectCachesRequest;
import com.aliyuncs.vod.model.v20170321.PreloadVodObjectCachesResponse;

    /**
     * 预热缓存
     * @param client 发送请求客户端
     * @return PreloadVodObjectCachesResponse
     * @throws Exception
     */
    public static PreloadVodObjectCachesResponse preloadVodObjectCaches(DefaultAcsClient client) throws Exception {
        PreloadVodObjectCachesRequest request = new PreloadVodObjectCachesRequest();
        // 需要预热的文件路径
        request.setObjectPath("http://example.com/fd-****.mp4");
        return client.getAcsResponse(request);
    }

    /**
     * 请求示例
     * @param argv
     */
    public static void main(String[] argv) {
        try {
            DefaultAcsClient client = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
            PreloadVodObjectCachesResponse response = preloadVodObjectCaches(client);
            // 预热返回的任务ID
            System.out.println("PreloadTaskId = " + response.getPreloadTaskId());
            // 请求ID
            System.out.println("RequestId = " + response.getRequestId());
        } catch (Exception e) {
            System.out.println("ErrorMessage = " + e.getMessage());
        }
    }

刷新缓存

调用RefreshVodObjectCaches接口,完成刷新缓存功能。

接口参数和返回字段请参见RefreshVodObjectCaches。调用示例如下:

import com.aliyuncs.vod.model.v20170321.RefreshVodObjectCachesRequest;
import com.aliyuncs.vod.model.v20170321.RefreshVodObjectCachesResponse;

    /**
     * 刷新缓存
     * @param client 发送请求客户端
     * @return RefreshVodObjectCachesResponse
     * @throws Exception
     */
    public static RefreshVodObjectCachesResponse refreshVodObjectCaches(DefaultAcsClient client) throws Exception {
        RefreshVodObjectCachesRequest request = new RefreshVodObjectCachesRequest();
        // 需要刷新的文件或者目录路径
        request.setObjectPath("http://example.com/fd-****.mp4");
        // 刷新的类型
        request.setObjectType("File");
        return client.getAcsResponse(request);
    }

    /**
     * 请求示例
     * @param argv
     */
    public static void main(String[] argv) {
        try {
            DefaultAcsClient client = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
            RefreshVodObjectCachesResponse response = refreshVodObjectCaches(client);
            // 刷新返回的任务ID
            System.out.println("PreloadTaskId = " + response.getRefreshTaskId());
            // 请求ID
            System.out.println("RequestId = " + response.getRequestId());
        } catch (Exception e) {
            System.out.println("ErrorMessage = " + e.getMessage());
        }
    }

查询刷新和预热状态

调用DescribeVodRefreshTasks接口,完成查询刷新和预热状态功能。

接口参数和返回字段请参见DescribeVodRefreshTasks。调用示例如下:

import com.aliyuncs.vod.model.v20170321.DescribeVodRefreshTasksRequest;
import com.aliyuncs.vod.model.v20170321.DescribeVodRefreshTasksResponse;

    /**
     * 查询刷新和预热状态
     * @param client 发送请求客户端
     * @return DescribeVodRefreshTasksResponse
     * @throws Exception
     */
    public static DescribeVodRefreshTasksResponse describeVodRefreshTasks(DefaultAcsClient client) throws Exception {
        DescribeVodRefreshTasksRequest request = new DescribeVodRefreshTasksRequest();
        // 需要查询的域名
        request.setDomainName("example.com");
        // 任务类型
        request.setObjectType("file");
        return client.getAcsResponse(request);
    }

    /**
     * 请求示例
     * @param argv
     */
    public static void main(String[] argv) {
        try {
            DefaultAcsClient client = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
            DescribeVodRefreshTasksResponse response = describeVodRefreshTasks(client);
            // 整页大小
            System.out.println("PageSize = " + response.getPageSize());
            // 页码
            System.out.println("PageNumber = " + response.getPageNumber());
            // 总条数
            System.out.println("TotalCount = " + response.getTotalCount());
            // 请求ID
            System.out.println("RequestId = " + response.getRequestId());
            if (response.getTasks() != null && response.getTasks().size() > 0) {
                for (DescribeVodRefreshTasksResponse.Task task : response.getTasks()) {
                    System.out.println("-----------------------------");
                    // 任务ID
                    System.out.println("TaskId = " + task.getTaskId());
                    // 刷新对象路径
                    System.out.println("ObjectPath = " + task.getObjectPath());
                    // 状态
                    System.out.println("Status = " + task.getStatus());
                    // 进度百分比
                    System.out.println("Process = " + task.getProcess());
                    // 任务类型
                    System.out.println("ObjectType = " + task.getObjectType());
                    // 任务对象创建时间,使用UTC时间
                    System.out.println("CreationTime = " + task.getCreationTime());
                    // 刷新预热失败返回的错误描述
                    System.out.println("Description = " + task.getDescription());
                }
            }
        } catch (Exception e) {
            System.out.println("ErrorMessage = " + e.getMessage());
        }
    }

查询刷新预热次数限制和余量

调用DescribeVodRefreshQuota接口,完成查询刷新预热次数限制和余量功能。

接口参数和返回字段请参见DescribeVodRefreshQuota。调用示例如下:

import com.aliyuncs.vod.model.v20170321.DescribeVodRefreshQuotaRequest;
import com.aliyuncs.vod.model.v20170321.DescribeVodRefreshQuotaResponse;

    /**
     * 查询刷新预热次数限制和余量
     * @param client 发送请求客户端
     * @return DescribeVodRefreshQuotaResponse
     * @throws Exception
     */
    public static DescribeVodRefreshQuotaResponse describeVodRefreshQuota(DefaultAcsClient client) throws Exception {
        DescribeVodRefreshQuotaRequest request = new DescribeVodRefreshQuotaRequest();
        return client.getAcsResponse(request);
    }

    /**
     * 请求示例
     * @param argv
     */
    public static void main(String[] argv) {
        try {
            DefaultAcsClient client = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
            DescribeVodRefreshQuotaResponse response = describeVodRefreshQuota(client);
            // 当日URL刷新数量上限
            System.out.println("UrlQuota = " + response.getUrlQuota());
            // 当日目录刷新数量上限
            System.out.println("DirQuota = " + response.getDirQuota());
            // 当日剩余URL刷新数量
            System.out.println("UrlRemain = " + response.getUrlRemain());
            // 当日剩余目录刷新数量
            System.out.println("DirRemain = " + response.getDirRemain());
            // 当天预热数量上限
            System.out.println("PreloadQuota = " + response.getPreloadQuota());
            // 当天剩余预热数量
            System.out.println("PreloadRemain = " + response.getPreloadRemain());
            // 请求ID
            System.out.println("RequestId = " + response.getRequestId());
        } catch (Exception e) {
            System.out.println("ErrorMessage = " + e.getMessage());
        }
    }

查询流量数据

调用DescribeVodDomainTrafficData接口,完成查询流量数据功能。

接口参数和返回字段请参见DescribeVodDomainTrafficData。调用示例如下:

import com.aliyuncs.vod.model.v20170321.DescribeVodDomainTrafficDataRequest;
import com.aliyuncs.vod.model.v20170321.DescribeVodDomainTrafficDataResponse;

/**
 * 查询流量数据
 */
public static DescribeVodDomainTrafficDataResponse describeVodDomainTrafficData(DefaultAcsClient client) throws Exception {
        DescribeVodDomainTrafficDataRequest request = new DescribeVodDomainTrafficDataRequest();
        // 设置域名
        request.setDomainName("example.aliyundoc.com");
        // 设置开始时间,请使用UTC格式
        request.setStartTime("2019-01-15T15:59:59Z");
        // 设置结束时间,请使用UTC格式
        request.setEndTime("2019-01-20T15:59:58Z");

        // 返回结果
        return client.getAcsResponse(request);
}

/**
 * 以下为调用示例
 * @param args
 */
public static void main(String[] args) throws Exception {
        // 初始化客户端
        DefaultAcsClient client = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");

        try {
            // 获取结果
            DescribeVodDomainTrafficDataResponse response = describeVodDomainTrafficData(client);

            // 打印请求ID
            System.out.println("ResquestId:" + response.getRequestId());
            // 打印域名
            System.out.println("DomainName:" + response.getDomainName());
            // 打印开始时间
            System.out.println("StartTime:" + response.getStartTime());
            // 打印结束时间
            System.out.println("EndTime:" + response.getEndTime());
            // 打印时间间隔
            System.out.println("DataInterval:" + response.getDataInterval());
            // 打印流量数据
            if (response.getTrafficDataPerInterval() != null && response.getTrafficDataPerInterval().size() != 0) {
                List<DescribeVodDomainTrafficDataResponse.DataModule> dataModules = response.getTrafficDataPerInterval();
                for(int i=0; i<dataModules.size(); i++) {
                    System.out.println("==========================" );
                    System.out.println("TimeStamp:" + dataModules.get(i).getTimeStamp());
                    System.out.println("Value:" + dataModules.get(i).getValue());
                    System.out.println("DomesticValue:" + dataModules.get(i).getDomesticValue());
                    System.out.println("OverseasValue:" + dataModules.get(i).getOverseasValue());
                }

            }
        } catch (Exception e) {
            System.out.println("ErrorMessage:" + e.getLocalizedMessage());
        }
}

查询网络带宽

调用DescribeVodDomainBpsData接口,完成查询网络带宽功能。

接口参数和返回字段请参见DescribeVodDomainBpsData。调用示例如下:

import com.aliyuncs.vod.model.v20170321.DescribeVodDomainBpsDataRequest;
import com.aliyuncs.vod.model.v20170321.DescribeVodDomainBpsDataResponse;
import java.util.List;

/**
 * 查询网络带宽
 */
public static DescribeVodDomainBpsDataResponse describeVodDomainBpsData(DefaultAcsClient client) throws Exception {
        DescribeVodDomainBpsDataRequest request = new DescribeVodDomainBpsDataRequest();
        // 设置域名
        request.setDomainName("example.aliyundoc.com");
        // 设置开始时间,请使用UTC格式
        request.setStartTime("2019-01-15T15:59:59Z");
        // 设置结束时间,请使用UTC格式
        request.setEndTime("2019-01-20T15:59:58Z");

        // 返回结果
        return client.getAcsResponse(request);
}

/**
 * 以下为调用示例
 * @param args
 */
public static void main(String[] args) throws Exception {
        // 初始化客户端
        DefaultAcsClient client = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
        try {
            // 获取结果
            DescribeVodDomainBpsDataResponse response = describeVodDomainBpsData(client);

            // 打印请求ID
            System.out.println("ResquestId:" + response.getRequestId());
            // 打印域名
            System.out.println("DomainName:" + response.getDomainName());
            // 打印开始时间
            System.out.println("StartTime:" + response.getStartTime());
            // 打印结束时间
            System.out.println("EndTime:" + response.getEndTime());
            // 打印时间间隔
            System.out.println("DataInterval:" + response.getDataInterval());
            // 打印带宽数据
            if (response.getBpsDataPerInterval() != null && response.getBpsDataPerInterval().size() != 0) {
                List<DescribeVodDomainBpsDataResponse.DataModule> dataModules = response.getBpsDataPerInterval();
                for(int i=0; i<dataModules.size(); i++) {
                    System.out.println("==========================" );
                    System.out.println("TimeStamp:" + dataModules.get(i).getTimeStamp());
                    System.out.println("Value:" + dataModules.get(i).getValue());
                    System.out.println("DomesticValue:" + dataModules.get(i).getDomesticValue());
                    System.out.println("OverseasValue:" + dataModules.get(i).getOverseasValue());
                }

            }
        } catch (Exception e) {
            System.out.println("ErrorMessage:" + e.getLocalizedMessage());
        }
}

下载域名日志

调用DescribeVodDomainLog接口,完成下载域名日志功能。

接口参数和返回字段请参见DescribeVodDomainLog。调用示例如下:

import com.aliyuncs.vod.model.v20170321.DescribeVodDomainLogRequest;
import com.aliyuncs.vod.model.v20170321.DescribeVodDomainLogResponse;
import java.util.List;

/**
 * 下载域名日志
 */
public static DescribeVodDomainLogResponse describeVodDomainLog(DefaultAcsClient client) throws Exception {
        DescribeVodDomainLogRequest request = new DescribeVodDomainLogRequest();
        // 设置域名
        request.setDomainName("example.alicdn.com");
        // 设置开始时间,请使用UTC格式
        request.setStartTime("2019-01-15T15:59:59Z");
        // 设置结束时间,请使用UTC格式
        request.setEndTime("2019-01-20T15:59:58Z");
        // 设置分页大小
        //request.setPageSize(300L);
        // 设置分页页号
        //request.setPageNumber(1L);

        // 返回结果
        return client.getAcsResponse(request);
}

/**
 * 以下为调用示例
 * @param args
 */
public static void main(String[] args) throws Exception {
        // 初始化客户端
        DefaultAcsClient client = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
        try {
            // 获取结果
            DescribeVodDomainLogResponse response = describeVodDomainLog(client);

            // 打印请求ID
            System.out.println("ResquestId:" + response.getRequestId());

            // 打印CDN日志详细数据
            if (response.getDomainLogDetails() != null && response.getDomainLogDetails().size() != 0) {
                List<DescribeVodDomainLogResponse.DomainLogDetail> domainLogDetails = response.getDomainLogDetails();
                for(int i=0; i<domainLogDetails.size(); i++) {
                    System.out.println("==========================" );
                    System.out.println("DomainName:" + domainLogDetails.get(i).getDomainName());
                    System.out.println("LogCount:" + domainLogDetails.get(i).getLogCount());

                    System.out.println("=== PageInfoDetail Data ===" );
                    System.out.println("PageNumber:" + domainLogDetails.get(i).getPageInfos().getPageNumber());
                    System.out.println("PageSize:" + domainLogDetails.get(i).getPageInfos().getPageSize());
                    System.out.println("Total:" + domainLogDetails.get(i).getPageInfos().getTotal());

                    System.out.println("=== LogInfoDetail Data ===" );
                    List<DescribeVodDomainLogResponse.DomainLogDetail.LogInfoDetail> logInfos = domainLogDetails.get(i).getLogInfos();
                    if (logInfos != null && logInfos.size() != 0) {
                        for (int k=0; k<logInfos.size(); k++) {
                            System.out.println("LogName:" + logInfos.get(k).getLogName());
                            System.out.println("LogPath:" + logInfos.get(k).getLogPath());
                            System.out.println("LogSize:" + logInfos.get(k).getLogSize());
                            System.out.println("StartTime:" + logInfos.get(k).getStartTime());
                            System.out.println("EndTime:" + logInfos.get(k).getEndTime());
                        }
                    }
                }

            }
        } catch (Exception e) {
            System.out.println("ErrorMessage:" + e.getLocalizedMessage());
        }
}
阿里云首页 视频点播 相关技术圈