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问题的方法。通过本文的学习,读者可以轻松添加视频上传功能到自己的项目中,并且在遇到问题时也能够快速解决。阿里云视频点播服务是一个非常可靠和高效的视频存储和处理服务,它不仅支持视频上传和存储,还提供了多种视频处理和分发的功能。在未来的工作中,阿里云视频点播服务将是一个非常有用的工具,我们希望通过本文帮助读者更好地了解和使用它。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这是一些 Node.js 的第三方模块的名称和版本号,它们被列在一个项目的 package.json 文件。这些模块包括: - "@alicloud/pop-core": "^1.7.13": 阿里云SDK,用于访问其 API - "alidayu": "^0.0.1": 阿里大于的 SDK,用于发送短信 - "buffer": "^6.0.3": 用于处理二进制数据 - "crypto": "^1.0.1": 用于加密解密 - "koa": "^2.6.2": 用于构建 Web 应用程序的框架 - "koa-bodyparser": "^4.2.1": 用于解析 HTTP 请求体的间件 - "koa-helmet": "^4.1.0": 用于提供安全头部的间件 - "koa-jwt": "^3.5.1": 用于身份验证和授权间件 - "koa-router": "^7.4.0": 用于处理路由的间件 - "koa-static-cache": "^5.1.2": 用于缓存静态文件的间件 - "koa2-cors": "^2.0.6": 用于处理跨域请求的间件 - "log4js": "^3.0.6": 用于日志记录的模块 - "mysql": "^2.18.1": 用于连接 MySQL 数据库的模块 - "mysql2": "^2.3.3": 用于连接 MySQL 数据库的模块(与 mysql 相比,有更好的性能和更多的功能) - "nodemon": "^2.0.20": 用于监视文件更改并自动重启 Node.js 应用程序的工具 - "sequelize": "^4.0.0": 用于 ORM(对象关系映射)的模块,可以将 JavaScript 对象映射到关系型数据库的行和列 - "svg-captcha": "^1.4.0": 用于生成 SVG 格式的验证码的模块 - "uuid": "^9.0.0": 用于生成 UUID(通用唯一标识符)的模块 - "yarn": "^1.22.19": Facebook 开发的 Node.js 包管理器,用于管理项目依赖的模块。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jieyucx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值