快速入门:阿里云视频点播服务的开通与实践指南
在本次博客中,我们将学习如何开通阿里云的视频点播(VoD)服务,并通过一个简单的项目示例,演示如何获取VoD上传凭证及地址,最后实现视频上传的功能。这个过程涉及到几个关键步骤,包括创建RAM用户、添加权限、使用npm安装所需库、创建路由和控制器,以及客户端上传视频。
开通阿里云视频点播服务
首先,我们需要开通阿里云的视频点播服务。阿里云VoD服务是收费的,但提供一个月的试用期。因此,建议在开通服务之前先学习相关代码,然后在试用期间进行实践。
创建RAM用户
为了更安全地使用阿里云服务,建议创建一个RAM用户作为子用户进行操作。创建RAM用户的步骤如下:
- 登录阿里云控制台。
- 在控制台中找到"身份管理 & RAM"服务。
- 创建一个新的RAM用户,并记录下该用户的
AccessKey ID
和AccessKey Secret
。这些信息将用于后续的API调用。
添加权限
新创建的RAM用户需要具备操作视频点播服务的权限。可以通过以下步骤为RAM用户添加权限:
- 在"身份管理 & RAM"服务页面,找到刚才创建的RAM用户。
- 为该用户添加权限,搜索"vod"相关的权限并添加。通常,为了简化操作,可以直接赋予该用户"AliyunVODFullAccess"(视频点播全权限)。
安装所需库
在项目中使用阿里云视频点播服务之前,需要安装@alicloud/pop-core
库。打开终端,运行以下命令:
perl
npm install @alicloud/pop-core --save
实现视频上传功能
接下来,我们将通过一个简单的Node.js项目示例,展示如何实现视频上传功能。
创建路由
首先,在项目中创建一个新的路由文件router.js
,并添加如下路由定义:
js
router.get('/lists', videoController.list)
.get('/getVod', vodController.getVod);
这里定义了两个GET请求路由,分别用于获取视频列表和获取视频上传凭证及地址。
创建vodController
创建vodController.js
文件,并添加以下代码:
js
let RPCClient = require('@alicloud/pop-core').RPCClient;
function initVodClient(accessKeyId, accessKeySecret) {
let regionId = 'cn-shanghai'; // 点播服务接入地域
let client;
try {
client = new RPCClient({
accessKeyId: YourAccessKeyID,
accessKeySecret: YourAccesssKeySecret,
endpoint: 'http://vod.' + regionId + '.aliyuncs.com',
apiVersion: '2017-03-21'
});
} catch (e) {
console.log(e);
}
return client;
}
exports.getVod = async (req, res) => {
let client = initVodClient(
'YourAccessKeyID', // 使用您的AccessKey ID
'YourAccesssKeySecret' // 使用您的AccessKey Secret
);
const vodback = await client.request("CreateUploadVideo", {
Title: 'test vod',
FileName: 'filename.mp4'
}, {});
console.log(vodback);
res.status(200).json({success: 'success'});
};
这段代码演示了如何初始化一个视频点播客户端,并定义了一个getVod
函数,该函数用于获取视频上传的凭证和地址。
客户端上传视频
客户端上传视频可以通过官方提供的websdk实现。这里以Vue为例,展示如何修改代码以连接到我们自己的后台Express服务:
js
if (!uploadInfo.videoId) {
let createUrl = 'http://127.0.0.1:3000/api/v1/video/getVod/';
axios.get(createUrl).then(({data}) => {
let uploadAuth = data.vod.UploadAuth;
let uploadAddress = data.vod.UploadAddress;
let videoId = data.vod.VideoId;
uploader.setUploadAuthAndAddress(uploadInfo, uploadAuth, uploadAddress, videoId);
});
self.statusText = '文件开始上传...';
console.log("onUploadStarted:" + uploadInfo.file.name + ", endpoint:" + uploadInfo.endpoint + ", bucket:" + uploadInfo.bucket + ", object:" + uploadInfo.object);
}
这段代码展示了如何在客户端上传视频时获取上传凭证和地址。首先,检查uploadInfo
对象中是否已有videoId
,如果没有,则通过发送GET请求到我们的后端服务/api/v1/video/getVod/
来获取uploadAuth
、uploadAddress
和videoId
。获取这些信息后,通过调用uploader.setUploadAuthAndAddress
方法设置上传的授权和地址,然后开始上传视频。
注意事项
- 在开始上传视频之前,需要确保在阿里云控制台的媒资管理配置中开启了存储管理功能。
- 确保您的阿里云账号已开通视频点播服务,并且已经按照上文创建了RAM用户并赋予了相应的权限。
- 上述示例中使用的
AccessKey ID
和AccessKey Secret
需要替换为您自己的凭证信息。
总结
- 本篇博客详细介绍了如何开通并使用阿里云视频点播服务,包括如何创建RAM用户、添加权限、安装所需的库、创建后端服务以获取上传凭证及地址,以及客户端如何实现视频的上传。通过这个过程,您可以轻松地在自己的项目中集成视频点播功能,实现视频的上传和管理。
- 参考资料:阿里云视频点播服务文档
- 参考资料: 相关博客