搭建一个自动录播平台,录播的内容存储到云盘中.使用B站录播姬+OSS对象存储+服务器
之前买过一台廉价的服务器,只有40G的云盘存储,再想增加存储加个40G的云盘
看见价格还是算了,所以考虑使用OSS对象存储.
1、对象存储一般可以单独使用,无需跟云主机进行组合搭配,而云硬盘则必须跟云主机同时使用,无法单独使用。
2、对象存储是可以共享的,而云硬盘一般无法共享,即便可以共享,操作起来也是非常复杂。
3、两者最大的差别在于一个是本地局域网内的存储方式,而另一个是使用云端服务器。简单来说一个是局域网,一个是公网;一个是存储设备,一个就是一个云端硬盘。
所以选择OSS存储.
购买OSS对象存储
创建bucket,这个地域选择与OSS对象存储一样的区域.
接下来尝试将OSS的bucket作为服务器的文件系统,也就是bucket在服务器上访问.
OSS以目录的方式挂载到ECS实例,可通过以下两种方法进行实现:
- 通过配置云存储网关来实现,详情请参见通过云存储网关挂载OSS。
- 如没有云存储网关,您也可通过ossfs命令行的方式,将存储空间下的某个文件目录挂载到本地文件系统。详情请参见以下方案:
第一种方法的前提条件,要求ECS的地域与OSS同地域,这里不满足所以采用第二种方法后面发现如果想让服务器跟OSS存储联动,最好还是选择同地域的,因为我发现我服务器在国内,OSS放在新加坡,内网是ping不通的.下面两种方法都介绍一下,推荐使用云存储网关.
挂载对象存储到服务器
使用ossfs挂载
安装ossfs
首先在阿里云上查看你的操作系统,这里以Centos8.0为标准1
sudo wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.7_centos8.0_x86_64.rpm
安装后下载1
sudo yum install ossfs_1.80.7_centos8.0_x86_64.rpm
配置账号信息
通过ossfs访问OSS存储空间时,需要配置账号信息,也就是AccessKey ID和AccessKey Secret。这些账号信息需要按照特定的格式写到账号配置文件中。当挂载ossfs时,会从这个账号配置文件上获取账号信息,格式为
$bucket_name:$access_key_id:$access_key_secret
。
access key可以使用RAM用户或者阿里云账号.我之前创建了阿里云账号的AccessKey,由于阿里提醒说有安全问题让我用RAM用户,这里就再创建一个用户使用AccessKey.
如果使用RAM角色访问,需要先创建角色
创建角色
然后为角色添加权限
为实例添加角色
通过ossfs访问OSS存储空间时,需要配置账号信息,也就是AccessKey ID和AccessKey Secret。这些账号信息需要按照特定的格式写到账号配置文件中。当挂载ossfs时,会从这个账号配置文件上获取账号信息,格式为
$bucket_name:$access_key_id:$access_key_secret
完成上述要求后需要配置1
ossfs bucket1 /tmp/ossfs -ourl=http://oss-cn-hangzhou.aliyuncs.com -oram_role=http://100.100.100.200/latest/meta-data/ram/security-credentials/EcsRamRoleOssTest
命令类似.也就是将账号信息配置到一个目录中,默认账号配置文件的默认路径为/etc/passwd-ossfs.账号配置文件的默认路径为/etc/passwd-ossfs
如果使用阿里云账户的AccessKey1
echo bucket-test-1:AAAIbZcdVCmQ****:AAA8x0y9hxQ31coh7A5e2MZEUz**** > /etc/passwd-ossfs
配置好后进行挂载,bucket的内网测试是能ping通的.
1
ossfs bili-record /home/files/bili-record -ourl=http://oss-ap-southeast-1-internal.aliyuncs.com
这里是内网访问
卸载1
sudo fusermount -u /tmp/ossfs
通过云存储网关挂载
还需要付费
设置开机自启
在centos系统中,在/etc/init.d/目录下建立文件ossfs,内容为挂载指令
1
ossfs bili-record /home/files/bili-record -ourl=http://oss-ap-southeast-1-internal.aliyuncs.com
2.赋予可执行权限1
chmod a+x /etc/init.d/ossfs
3.把ossfs启动脚本作为其他服务,开机自动启动:1
chkconfig ossfs on
测试
在网站上上传文件,然后查看服务器
增加域名管理
文件(Object)上传至存储空间(Bucket)后,OSS会自动生成文件URL,您可以直接通过文件URL(即Bucket外网访问域名)访问该文件。若您希望通过自定义域名(自有域名)访问这些文件,需要将自定义域名绑定至文件所在的Bucket。
域名信息更新需 1 分钟左右的时间,CD
在域名服务商配置即可,这里不详细说了.
使用B站录播姬
我这里使用docker版本,首先拉取镜像1
docker pull bililive/recorder:latest
运行1
2# 复制粘贴运行之前记得修改 "宿主机路径"
docker run -d -v 宿主机路径:/rec -p 2356:2356 bililive/recorder
/rec
:作为"工作目录"
,用于存储录播配置和录播.flv
视频文件。/ssl
:作为 Nginx 证书存储目录。/file
:官方文档中指出:
由于安全问题,这里增加HTTP Basic登录功能
配置文件
由于配置文件json还挺麻烦,由于有web ui,可以开放端口直接配置搭配文档编写.
比如1
{"version":3,"global":{},"rooms":[{"RoomId":{"HasValue":true,"Value":"房间号"},"AutoRecord":{"HasValue":true,"Value":true}}]}
更新录播姬
1 | # 拉取最新版本的镜像 |