快速入门:阿里云视频点播服务的开通与实践指南

快速入门:阿里云视频点播服务的开通与实践指南

在本次博客中,我们将学习如何开通阿里云的视频点播(VoD)服务,并通过一个简单的项目示例,演示如何获取VoD上传凭证及地址,最后实现视频上传的功能。这个过程涉及到几个关键步骤,包括创建RAM用户、添加权限、使用npm安装所需库、创建路由和控制器,以及客户端上传视频。

开通阿里云视频点播服务

首先,我们需要开通阿里云的视频点播服务。阿里云VoD服务是收费的,但提供一个月的试用期。因此,建议在开通服务之前先学习相关代码,然后在试用期间进行实践。

创建RAM用户

为了更安全地使用阿里云服务,建议创建一个RAM用户作为子用户进行操作。创建RAM用户的步骤如下:

  1. 登录阿里云控制台。
  2. 在控制台中找到"身份管理 & RAM"服务。
  3. 创建一个新的RAM用户,并记录下该用户的AccessKey IDAccessKey Secret。这些信息将用于后续的API调用。

添加权限

新创建的RAM用户需要具备操作视频点播服务的权限。可以通过以下步骤为RAM用户添加权限:

  1. 在"身份管理 & RAM"服务页面,找到刚才创建的RAM用户。
  2. 为该用户添加权限,搜索"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/来获取uploadAuthuploadAddressvideoId。获取这些信息后,通过调用uploader.setUploadAuthAndAddress方法设置上传的授权和地址,然后开始上传视频。

注意事项

  • 在开始上传视频之前,需要确保在阿里云控制台的媒资管理配置中开启了存储管理功能。
  • 确保您的阿里云账号已开通视频点播服务,并且已经按照上文创建了RAM用户并赋予了相应的权限。
  • 上述示例中使用的AccessKey IDAccessKey Secret需要替换为您自己的凭证信息。

总结

  • 本篇博客详细介绍了如何开通并使用阿里云视频点播服务,包括如何创建RAM用户、添加权限、安装所需的库、创建后端服务以获取上传凭证及地址,以及客户端如何实现视频的上传。通过这个过程,您可以轻松地在自己的项目中集成视频点播功能,实现视频的上传和管理。
  • 参考资料:阿里云视频点播服务文档
  • 参考资料: 相关博客
相关推荐
金梦人生4 小时前
🔥Knife4j vs Swagger:Node.js 开发者的API文档革命!
前端·node.js
Ya-Jun5 小时前
快应用TypeError: The ‘compilation‘ argument must be an instance of Compilation错误
node.js·ux·js
亮子AI6 小时前
【npm】npm install 产生软件包冲突怎么办?(详细步骤)
前端·npm·node.js
Q_Q5110082856 小时前
python+uniapp基于微信小程序的心理咨询信息系统
spring boot·python·微信小程序·django·flask·uni-app·node.js
浪裡遊8 小时前
MUI组件库与主题系统全面指南
开发语言·前端·javascript·vue.js·react.js·前端框架·node.js
梵得儿SHI10 小时前
Vue 开发环境搭建全指南:从工具准备到项目启动
前端·javascript·vue.js·node.js·pnpm·vue开发环境·nvm版本管理
郏国上19 小时前
图片上传阿里云
阿里云·node.js·云计算
tryCbest1 天前
Linux使用Docker部署Node.js+Express+SQLite项目
docker·centos·node.js
GISer_Jing1 天前
LLM对话框项目技术栈&重难点总结
前端·ai·node.js
用户2519162427111 天前
Node之单表基本查询
前端·javascript·node.js