云存储同步详细设置

支持S3、七牛云、又拍云、腾讯云OSS、阿里云OSS、其它服务器、谷歌云、Bunny、CF R2、华为云、Wasabi、Blob。

一般我们转码后,有的对播放速度不满意,除了使用CDN加速外,还可以将切片上传到其它服务器、阿里云OSS、七牛云或者其他云存储进行加速。

目前已支持以下存储:

亚马逊S3,也适用于接口支持AWS S3的存储服务
Minio存储,适用于同步到其它服务器
Cloudflare R2
华为云
七牛云
阿里云OSS
腾讯云OSS
又拍云
Wasabi
Bunny
Google Cloud Storage
Azure Blob Storage

同步步骤

同步期间会记录同步日志,再次同步的时候,会跳过已同步的切片;如果想重新同步,可先批量清空同步日志,程序会重新扫描并同步。

且每个文件上传失败默认有3次重试次数,如果3次依旧失败,则该文件在本次扫描不会再次上传,直到下次重新扫描会再次尝试上传。

操作步骤

先前往EFV后台左侧 ⇒ 转码相关 ⇒ 云储存设置,添加对应的云存储,然后开启同步。

同步参数

云存储需要的同步参数在每个类型添加页面都有说明,这里说一下比较难找的几个。

S3endpoints参考 ⇒ 点击查看

Wasabiendpoints参考 ⇒ 点击查看,基本上组成就是s3.region.wasabisys.com

CF R2endpoints参考 ⇒ 点击查看,基本上组成就是https://ACCOUNT_ID.r2.cloudflarestorage.com

Minio存储需要在接收同步的服务器上安装Minio,安装教程 ⇒ 点击查看;还需要让转码服务器Minio服务器的时间一致,不然同步会失败,可使用date命令进行时间查看。

如果两台服务器时间不一样,可以分别在ssh客户端运行命令改一下:

rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#查看修改后的时间
date

如何查看视频是否已同步

前往视频管理,先去标题栏把是否已同步调出来,方便标题栏查看。

然后点击其它筛选,选择已同步的视频即可。

如何批量清空视频同步记录

前往视频管理 ⇒ 其它筛选,选择已同步的视频,然后批量选择,点击下方批量清空同步记录即可

最后清空后,同步监听会重新自动同步这些视频。

同步日志查看

使用SSH客户端,比如Xshell软件,登录服务器,再使用命令:

pm2 log efvasync

修改监控间隔时间

目前默认间隔3分钟,先编辑helper/newcloud.js文件,需要修改代码await agenda.every("3 minutes", "auto async"),修改如下:

#分钟单位minute,且大于1分钟用minutes
1 minute
2 minutes
3 minutes

#秒钟单位,比如20秒
20 seconds

#如果我要修改为30秒,则具体代码
await agenda.every("30 seconds", "auto async");

根据自行情况进行相关修改,不建议改太低,否则会占用资源;修改完重新开启同步即可。

如何加快同步速度

提示:机器性能一般的默认即可,不然上传太猛服务器容易崩掉,或者被云存储服务商限制,导致上传出错,不是太赶速度就微调下即可。

目前同步原理就是,按时监听未同步的视频,然后每次只处理2个未同步视频,处理该未同步视频的时候,每次同时上传5个切片,依次传完。

如果你的视频量大,且都是长视频,并且同步远远赶不上秒切速度,则可以修改如下配置进行同步加速,编辑helper/newcloud.js文件,修改如下:

#同时处理未同步的视频数,默认2
asyncMapLimit(unAsyncFiles, 2, async (file)

#处理每个未同步的视频的时候,每次上传的切片数,默认5
await asyncMapLimit(files, 5, async (file)

最后修改完毕后,重新点击开启同步就行了。