掘金 后端 ( ) • 2024-04-07 21:23

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

在本次博客中,我们将学习如何开通阿里云的视频点播(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库。打开终端,运行以下命令:

npm install @alicloud/pop-core --save

实现视频上传功能

接下来,我们将通过一个简单的Node.js项目示例,展示如何实现视频上传功能。

创建路由

首先,在项目中创建一个新的路由文件router.js,并添加如下路由定义:

router.get('/lists', videoController.list)
      .get('/getVod', vodController.getVod);

这里定义了两个GET请求路由,分别用于获取视频列表和获取视频上传凭证及地址。

创建vodController

创建vodController.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服务:

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用户、添加权限、安装所需的库、创建后端服务以获取上传凭证及地址,以及客户端如何实现视频的上传。通过这个过程,您可以轻松地在自己的项目中集成视频点播功能,实现视频的上传和管理。
  • 参考资料:阿里云视频点播服务文档
  • 参考资料: 相关博客