node中@alicloud/pop-core获取阿里云视频点播vod上传地址和凭证、web端上传sdk以及解决获取上传凭证报错`InvalidStorage.NotFound`问题

引言

在web开发中,视频上传功能是一个非常常见的需求。使用阿里云视频点播服务作为存储服务可以提高视频上传的效率和稳定性,同时也提供了一系列的工具和API供开发者使用。本文将介绍如何使用@alicloud/pop-core获取阿里云视频点播vod上传地址和凭证作为web端上传sdk,同时还将提供解决获取上传凭证报错InvalidStorage.NotFound问题的方法。通过本文的学习,读者可以在自己的项目中快速添加视频上传功能,并解决常见的错误问题。

一、使用视频点播实现音视频上传整体流程

使用视频点播实现音视频上传、存储、处理和播放的整体流程如下
在这里插入图片描述

  1. 音视频上传:首先,用户需要将自己的音频或视频上传到阿里云VOD。该过程可以使用VOD控制台、上传SDK、API操作等方式进行。阿里云VOD支持多种媒体格式的上传,并对上传的音频或视频进行整合处理。

  2. 媒体处理:上传后,VOD会自动对音视频文件进行处理。这一过程包括转码、封装、分辨率适配等,产生可在各类设备上播放的视频和音频。此外,用户还可以配置水印、截图、净化等附加处理。

  3. 媒体资料管理:处理完成后,VOD将为每个音频或视频生成唯一的VideoID,并存储相关的元数据信息。用户可以利用API或SDK对这些信息进行查询、修改等操作。

  4. 存储与分发:VOD为用户提供了音视频存储服务,能够实现音视频的存储和备份。此外,通过阿里云全球CDN网络,VOD还可以实现音视频的快速分发。

  5. 播放:阿里云VOD提供了多种方式供用户进行音视频播放,包括通过播放器SDK在客户端进行播放,通过Web播放器在网页中播放,或通过URL在第三方播放器中播放。

  6. 分析与优化:此外,阿里云VOD还提供了丰富的音视频分析功能,帮助用户理解音视频的播放情况、用户行为等,并据此对音视频的发布策略进行优化。

二、web端上传sdk

1. 开通视频点播服务

具体流程大家可以看看这篇购买开通视频点播服务

2. 创建ram用户

在这里插入图片描述
在这里插入图片描述
创建成功之后就会获取到秘钥Id 和Secret
在这里插入图片描述
为用户添加权限
在这里插入图片描述
搜索vod
在这里插入图片描述
在这里插入图片描述

3. 获取上传地址和凭证

1. node中express框架使用@alicloud/pop-core获取上传凭证

这里以node为例
其他方式可参考官网:https://help.aliyun.com/zh/vod/developer-reference/obtain-upload-urls-and-credentials?spm=a2c4g.11186623.0.0.d5851ee8drr4nV#task-1997361

1.安装Node.js SDK

npm install @alicloud/pop-core --save

2.初始化Node.js SDK

AccessKey初始化
填入AccessKey信息,进行初始化。示例如下:

var RPCClient = require('@alicloud/pop-core').RPCClient;

function initVodClient(accessKeyId, accessKeySecret,) {
    
    
    var regionId = 'cn-shanghai';   // 点播服务接入地域
    var client = new RPCClient({
    
    //填入AccessKey信息
        accessKeyId: accessKeyId,
        accessKeySecret: accessKeySecret,
        endpoint: 'http://vod.' + regionId + '.aliyuncs.com',
        apiVersion: '2017-03-21'
    });

    return client;
}

这里面的accessKeyIdaccessKeySecret就是我们上面创建ram用户中的idsecret

3.获取上传地址和凭证

function getvod = async (req, res) => {
    
    
  // 请求示例
  let client = initVodClient( // 这里就是传入创建rma账号的id和secret
    'accessKeyId',
    'accessKeySecret'
  );

  const vodback = await client.request("CreateUploadVideo", {
    
    
    Title: 'test vod',
    FileName: 'filename.mp4'
  }, {
    
    })
  res.status(200).json({
    
    vod:vodback})
}

这时我们就可以写个接口测试一下

router.get('/getvod', getvod)

然后使用postman调用该接口,如果报错The storageLocation does not exist可能是以下原因:

  1. 你可能没有在你的ALICLOUD账户中创建该存储位置。你需要到你的ALICLOUD管理控制台中去创建这个位置。

  2. 你可能错误地拼写了存储位置的名称。确保你提供的名称与ALICLOUD中的存储位置名称完全一致。

  3. 如果你在代码中硬编码了存储位置的名称,那么可能是大小写错误或者多余的空格导致的。再次检查你的代码。

  4. 可能是**@alicloud/pop-core库的版本不兼容**,建议更新到最新版本。

  5. 拥有足够的权限访问存储位置。你的账户必须拥有访问和创建该存储位置的权限。
    在这里插入图片描述

code: 'InvalidStorage.NotFound'
message: 'The storageLocation does not exist'

我这里就是第一个,没有启动存储位置。

啊啊啊啊啊 这里卡了我好久啊,问了阿里云的在线服务,需要启用存储位置才行!!!

在这里插入图片描述

在这里插入图片描述
启用之后,在调用接口,成功返回
在这里插入图片描述

2. 客户端上传vod

1. 下载官方demo

找到官方示例,下载vue源码示例。
在这里插入图片描述

2. 更改package.json文件

在这里插入图片描述
npm run dev启动demo

npm run dev

3. 更改demo中的上传接口地址

uploadAutn.vue中的createUrl换为自己的获取上传凭证的接口地址
在这里插入图片描述

4.测试上传

在这里插入图片描述
在点播管理里查看上传的视频
在这里插入图片描述

总结

在本文中,我们介绍了如何使用@alicloud/pop-core获取阿里云视频点播vod上传地址和凭证,同时提供了一种解决报错InvalidStorage.NotFound问题的方法。通过本文的学习,读者可以轻松添加视频上传功能到自己的项目中,并且在遇到问题时也能够快速解决。阿里云视频点播服务是一个非常可靠和高效的视频存储和处理服务,它不仅支持视频上传和存储,还提供了多种视频处理和分发的功能。在未来的工作中,阿里云视频点播服务将是一个非常有用的工具,我们希望通过本文帮助读者更好地了解和使用它。

猜你喜欢

转载自blog.csdn.net/jieyucx/article/details/132097938