媒体上传
点播服务端提供丰富的上传接口,支持开发者采用不同的上传方式实现媒体上传。本文介绍PHP SDK调用服务端上传接口的使用场景和调用示例。
使用场景
本文仅提供API调用示例,即在点播服务中获取上传凭证和地址等操作示例。要实现完整的媒体文件上传逻辑,请参考下表跳转至对应的上传方式和使用场景。
接口 | 使用场景 |
---|---|
| |
前提条件
接口调用示例
获取音/视频上传地址和凭证
调用CreateUploadVideo接口,完成获取音/视频上传地址和凭证功能。
接口参数和返回字段请参见CreateUploadVideo。调用示例如下:
<?php
require_once './aliyun-php-sdk/aliyun-php-sdk-core/Config.php'; // 假定您的源码文件和aliyun-php-sdk处于同一目录
use vod\Request\V20170321 as vod;
function initVodClient($accessKeyId, $accessKeySecret) {
$regionId = 'cn-shanghai'; // 点播服务接入区域
$profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret);
return new DefaultAcsClient($profile);
}
/**
* 获取音/视频上传地址和凭证
* @param client 发送请求客户端
* @return CreateUploadVideoResponse 获取音/视频上传地址和凭证响应数据
*/
function createUploadVideo($client) {
$request = new vod\CreateUploadVideoRequest();
$request->setTitle("Sample Title");
$request->setFileName("videoFile.mov");
$request->setDescription("Video Description");
$request->setCoverURL("http://192.168.0.0/16/tps/TB1qnJ1PVXXXXXCXXXXXXXXXXXX-700-700.png");
$request->setTags("tag1,tag2");
$request->setAcceptFormat('JSON');
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$uploadInfo = createUploadVideo($client);
var_dump($uploadInfo);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
刷新音/视频上传凭证
调用RefreshUploadVideo接口,完成刷新音/视频上传凭证功能。
接口参数和返回字段请参见RefreshUploadVideo。调用示例如下:
<?php
require_once './aliyun-php-sdk/aliyun-php-sdk-core/Config.php'; // 假定您的源码文件和aliyun-php-sdk处于同一目录
use vod\Request\V20170321 as vod;
function initVodClient($accessKeyId, $accessKeySecret) {
$regionId = 'cn-shanghai'; // 点播服务接入区域
$profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret);
return new DefaultAcsClient($profile);
}
/**
* 刷新音/视频上传凭证
* @param client 发送请求客户端
* @return RefreshUploadVideoResponse 刷新音/视频上传凭证响应数据
*/
function refreshUploadVideo($client, $videoId) {
$request = new vod\RefreshUploadVideoRequest();
$request->setVideoId($videoId);
$request->setAcceptFormat('JSON');
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$refreshInfo = refreshUploadVideo($client, '<MediaId>');
var_dump($refreshInfo);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
获取图片上传地址和凭证
调用CreateUploadImage接口,完成获取图片上传地址和凭证功能。
接口参数和返回字段请参见CreateUploadImage。调用示例如下:
<?php
require_once './aliyun-php-sdk/aliyun-php-sdk-core/Config.php'; // 假定您的源码文件和aliyun-php-sdk处于同一目录
use vod\Request\V20170321 as vod;
function initVodClient($accessKeyId, $accessKeySecret) {
$regionId = 'cn-shanghai'; // 点播服务接入区域
$profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret);
return new DefaultAcsClient($profile);
}
/**
* 获取图片上传地址和凭证
* @param client 发送请求客户端
* @return CreateUploadImageResponse 获取图片上传地址和凭证响应数据
*/
function createUploadImage($client, $imageType, $imageExt) {
$request = new vod\CreateUploadImageRequest();
$request->setImageType($imageType);
$request->setImageExt($imageExt);
$request->setAcceptFormat('JSON');
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$imageInfo = createUploadImage($client, 'cover', 'jpg');
var_dump($imageInfo);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
获取辅助媒资上传地址和凭证
调用CreateUploadAttachedMedia接口,完成获取辅助媒资上传地址和凭证功能。
接口参数和返回字段请参见CreateUploadAttachedMedia。调用示例如下:
<?php
require_once './aliyun-php-sdk/aliyun-php-sdk-core/Config.php'; // 假定您的源码文件和aliyun-php-sdk处于同一目录
use vod\Request\V20170321 as vod;
function initVodClient($accessKeyId, $accessKeySecret) {
$regionId = 'cn-shanghai'; // 点播服务接入区域
$profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret);
return new DefaultAcsClient($profile);
}
/**
* 获取辅助媒资(水印、字幕等)上传地址和凭证
* @param client 发送请求客户端
* @return CreateUploadAttachedMediaResponse 获取辅助媒资上传地址和凭证响应数据
*/
function createUploadAttachedMedia($client) {
$request = new vod\CreateUploadAttachedMediaRequest();
$request->setBusinessType("watermark");
$request->setMediaExt("gif");
$request->setTitle("this is a sample");
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$result = createUploadAttachedMedia($client);
var_dump($result);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
URL批量拉取上传
调用UploadMediaByURL接口,完成URL批量拉取上传功能。
接口参数和返回字段请参见UploadMediaByURL。调用示例如下:
<?php
require_once './aliyun-php-sdk/aliyun-php-sdk-core/Config.php'; // 假定您的源码文件和aliyun-php-sdk处于同一目录
use vod\Request\V20170321 as vod;
function initVodClient($accessKeyId, $accessKeySecret) {
$regionId = 'cn-shanghai'; // 点播服务接入区域
$profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret);
return new DefaultAcsClient($profile);
}
/**
* URL批量拉取上传
* @param client 发送请求客户端
* @return UploadMediaByURLResponse URL批量拉取上传响应数据
*/
function uploadMediaByURL($client) {
$request = new vod\UploadMediaByURLRequest();
$url = "http://192.168.0.0/16/***.mp4";
$request->setUploadURLs($url);
$uploadMetadataList = array();
$uploadMetadata = array();
$uploadMetadata["SourceUrl"] = $url;
$uploadMetadata["Title"] = "upload by url sample";
$uploadMetadataList[] = $uploadMetadata;
$request->setUploadMetadatas(json_encode($uploadMetadataList));
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$result = uploadMediaByURL($client);
var_dump($result);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
获取URL上传信息
调用GetURLUploadInfos接口,完成获取URL上传信息功能。
接口参数和返回字段请参见GetURLUploadInfos。调用示例如下:
<?php
require_once './aliyun-php-sdk/aliyun-php-sdk-core/Config.php'; // 假定您的源码文件和aliyun-php-sdk处于同一目录
use vod\Request\V20170321 as vod;
function initVodClient($accessKeyId, $accessKeySecret) {
$regionId = 'cn-shanghai'; // 点播服务接入区域
$profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret);
return new DefaultAcsClient($profile);
}
/**
* 获取URL上传信息
* @param client 发送请求客户端
* @return GetURLUploadInfosResponse 获取URL上传信息响应数据
*/
function getURLUploadInfos($client) {
$request = new vod\GetURLUploadInfosRequest();
// URL列表
$urls = array();
$urls[] = "http://192.168.0.0/16/sample1.mp4";
$urls[] = "http://192.168.0.0/16/sample2.mp4";
// 对URL进行编码
$uploadURLs = array();
foreach ($urls as $url) {
$uploadURLs[] = urlencode($url);
}
// 设置上传的URL列表,用逗号分隔
$request->setUploadURLs(implode(",", $uploadURLs));
// 也可以传入jobId查询
//$request->setJobIds("jobId1****,jobId2****")
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$result = getURLUploadInfos($client);
var_dump($result);
} catch (Exception $e) {
print $e->getMessage()."\n";
}