集成方式
Maven 依赖引入
在项目的 pom.xml 文件添加点播 SDK 依赖即可:
<dependency><groupId>com.qcloud</groupId><artifactId>vod_api</artifactId><version>2.1.5</version></dependency>
jar 包导入
如果项目没有采用 Maven 的方式进行依赖管理,可采用如下方式,下载各个所需的 jar 包,导入项目即可:
jar 文件 | 说明 |
vod_api-2.1.5.jar | 云点播 SDK。 |
jackson-annotations-2.9.0.jar,jackson-core-2.9.7.jar,jackson-databind-2.9.7.jar,gson-2.2.4.jar | 开源的 JSON 相关库。 |
cos_api-5.4.10.jar | 腾讯云对象存储服务 COS SDK。 |
tencentcloud-sdk-java-3.1.2.jar | 腾讯云 API SDK。 |
commons-codec-1.10.jar,commons-logging-1.2.jar,log4j-1.2.17.jar,slf4j-api-1.7.21.jar,slf4j-log4j12-1.7.21.jar | 开源日志相关库。 |
httpclient-4.5.3.jar,httpcore-4.4.6.jar,okhttp-2.5.0.jar,okio-1.6.0.jar | 开源的 HTTP 处理库。 |
joda-time-2.9.9.jar | 开源时间处理库。 |
jaxb-api-2.3.0.jar | 开源 XML 处理库。 |
bcprov-jdk15on-1.59.jar | 开源加密处理库。 |
简单上传
初始化一个上传客户端对象
使用云 API 密钥初始化 VodUploadClient 实例。
VodUploadClient client = new VodUploadClient("your secretId", "your secretKey");
构造上传请求对象
设置媒体本地上传路径。
VodUploadRequest request = new VodUploadRequest();request.setMediaFilePath("/data/videos/Wildlife.wmv");
调用上传
调用上传方法,传入接入点地域及上传请求。
try {VodUploadResponse response = client.upload("ap-guangzhou", request);logger.info("Upload FileId = {}", response.getFileId());} catch (Exception e) {// 业务方进行异常处理logger.error("Upload Err", e);}
说明:
上传方法根据用户文件的长度,自动选择普通上传以及分片上传,用户不用关心分片上传的每个步骤,即可实现分片上传。
高级功能
携带封面
VodUploadClient client = new VodUploadClient("your secretId", "your secretKey");VodUploadRequest request = new VodUploadRequest();request.setMediaFilePath("/data/videos/Wildlife.wmv");request.setCoverFilePath("/data/videos/Wildlife.jpg");try {VodUploadResponse response = client.upload("ap-guangzhou", request);logger.info("Upload FileId = {}", response.getFileId());} catch (Exception e) {// 业务方进行异常处理logger.error("Upload Err", e);}
指定任务流
VodUploadClient client = new VodUploadClient("your secretId", "your secretKey");VodUploadRequest request = new VodUploadRequest();request.setMediaFilePath("/data/videos/Wildlife.wmv");request.setProcedure("Your Procedure Name");try {VodUploadResponse response = client.upload("ap-guangzhou", request);logger.info("Upload FileId = {}", response.getFileId());} catch (Exception e) {// 业务方进行异常处理logger.error("Upload Err", e);}
应用上传
VodUploadClient client = new VodUploadClient("your secretId", "your secretKey");VodUploadRequest request = new VodUploadRequest();request.setMediaFilePath("/data/videos/Wildlife.wmv");request.setSubAppId(101);try {VodUploadResponse response = client.upload("ap-guangzhou", request);logger.info("Upload FileId = {}", response.getFileId());} catch (Exception e) {// 业务方进行异常处理logger.error("Upload Err", e);}
指定存储地域
VodUploadClient client = new VodUploadClient("your secretId", "your secretKey");VodUploadRequest request = new VodUploadRequest();request.setMediaFilePath("/data/videos/Wildlife.wmv");request.setStorageRegion("ap-chongqing");try {VodUploadResponse response = client.upload("ap-guangzhou", request);logger.info("Upload FileId = {}", response.getFileId());} catch (Exception e) {// 业务方进行异常处理logger.error("Upload Err", e);}
指定分片并发数
分片并发数是针对大文件,拆分成多个分片同时进行上传。分片并发上传的优势在于可以快速完成单个文件的上传,SDK 会根据用户文件的长度,自动选择普通上传以及分片上传,用户不用关心分片上传的每个步骤,即可实现分片上传。而文件的分片并发数通过
ConcurrentUploadNumber
参数进行指定。VodUploadClient client = new VodUploadClient("your secretId", "your secretKey");VodUploadRequest request = new VodUploadRequest();request.setMediaFilePath("/data/videos/Wildlife.wmv");request.setConcurrentUploadNumber(5);try {VodUploadResponse response = client.upload("ap-guangzhou", request);logger.info("Upload FileId = {}", response.getFileId());} catch (Exception e) {// 业务方进行异常处理logger.error("Upload Err", e);}
使用临时证书上传
VodUploadClient client = new VodUploadClient("Credentials TmpSecretId", "Credentials TmpSecretKey", "Credentials Token");VodUploadRequest request = new VodUploadRequest();request.setMediaFilePath("/data/videos/Wildlife.wmv");try {VodUploadResponse response = client.upload("ap-guangzhou", request);logger.info("Upload FileId = {}", response.getFileId());} catch (Exception e) {// 业务方进行异常处理logger.error("Upload Err", e);}
设置代理上传
设置上传代理,涉及协议及数据都会经过代理进行处理,开发者可以借助代理在自己公司内网上传文件到腾讯云。
VodUploadClient client = new VodUploadClient("your secretId", "your secretKey");VodUploadRequest request = new VodUploadRequest();request.setMediaFilePath("/data/videos/Wildlife.wmv");HttpProfile httpProfile = new HttpProfile();httpProfile.setProxyHost("your proxy ip");httpProfile.setProxyPort(8080); //your proxy portclient.setHttpProfile(httpProfile);try {VodUploadResponse response = client.upload("ap-guangzhou", request);logger.info("Upload FileId = {}", response.getFileId());} catch (Exception e) {// 业务方进行异常处理logger.error("Upload Err", e);}
自适应码流文件上传
本 SDK 支持上传的自适应码流格式包括 HLS 和 DASH,同时要求 manifest(M3U8 或 MPD)所引用的媒体文件必须为相对路径(即不可以是 URL 和绝对路径),且位于 manifest 的同级目录或者下级目录(即不可以使用
../
)。在调用 SDK 上传接口时,MediaFilePath
参数填写 manifest 路径,SDK 会解析出相关的媒体文件列表一并上传。VodUploadClient client = new VodUploadClient("your secretId", "your secretKey");VodUploadRequest request = new VodUploadRequest();request.setMediaFilePath("/data/videos/prog_index.m3u8");try {VodUploadResponse response = client.upload("ap-guangzhou", request);logger.info("Upload FileId = {}", response.getFileId());} catch (Exception e) {// 业务方进行异常处理logger.error("Upload Err", e);}
接口描述
上传客户端类
VodUploadClient
属性名称 | 属性描述 | 类型 | 必填 |
secretId | 云 API 密钥 ID | String | 是 |
secretKey | 云 API 密钥 Key | String | 是 |
上传请求类
VodUploadRequest
属性名称 | 属性描述 | 类型 | 必填 |
MediaFilePath | 待上传的媒体文件路径。必须为本地路径,不支持 URL。 | String | 是 |
SubAppId | Integer | 否 | |
MediaType | String | 否 | |
MediaName | 上传后的媒体名称,若不填默认采用 MediaFilePath 的文件名。 | String | 否 |
CoverFilePath | 待上传的封面文件路径。必须为本地路径,不支持 URL。 | String | 否 |
CoverType | String | 否 | |
Procedure | String | 否 | |
ExpireTime | String | 否 | |
ClassId | Integer | 否 | |
SourceContext | 来源上下文,用于透传用户请求信息,上传回调接口将返回该字段值,最长250个字符。 | String | 否 |
StorageRegion | String | 否 | |
ConcurrentUploadNumber | 分片并发数,针对大文件分片时有效。 | Integer | 否 |
上传响应类
VodUploadResponse
属性名称 | 属性描述 | 类型 |
FileId | 媒体文件的唯一标识。 | String |
MediaUrl | 媒体播放地址。 | String |
CoverUrl | 媒体封面地址。 | String |
RequestId | 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 | String |
上传方法
VodUploadClient.upload(String region, VodUploadRequest request)
参数名称 | 参数描述 | 类型 | 必填 |
region | String | 是 | |
request | 上传请求。 | VodUploadRequest | 是 |
错误码表
状态码 | 含义 |
InternalError | 内部错误。 |
InvalidParameter.ExpireTime | 参数值错误:过期时间。 |
InvalidParameterValue.CoverType | 参数值错误:封面类型。 |
InvalidParameterValue.MediaType | 参数值错误:媒体类型。 |
InvalidParameterValue.SubAppId | 参数值错误:应用 ID。 |
InvalidParameterValue.VodSessionKey | 参数值错误:点播会话。 |
ResourceNotFound | 资源不存在。 |