peertube在两个月前就安装好了,传过几个视频,发现很快服务器的存储空间就没了,没办法,必须得用对象存储,上传的只是一个视频文件,然后peertube会对视频进行切片处理,这样不通分辨率的视频导致文件会很大,所以必须使用对象存储。
我刚开始使用对象存储的方法是官方文档里的,按照要求设置发现不行,可能是安装方式不一样,这个方法无效。看log发现不对,然后就搁置了好久。
就开始搜索docker的配置方法,找到一篇文章,发现也是docker安装的,这下对味儿了,最后文章结论是他成功了。
peertube的对象存储支持aws的s3和BackBlaze的b2(aws的s3太贵了,建议使用b2)

peertube配置-对象存储
下面是我的配置
PEERTUBE_OBJECT_STORAGE_ENABLED=true
PEERTUBE_OBJECT_STORAGE_ENDPOINT=s3.us-west-004.backblazeb2.com
PEERTUBE_OBJECT_STORAGE_REGION=us-west
PEERTUBE_OBJECT_STORAGE_PROXY_PROXIFY_PRIVATE_FILES=true
PEERTUBE_OBJECT_STORAGE_CREDENTIALS_ACCESS_KEY_ID=b2的id
PEERTUBE_OBJECT_STORAGE_CREDENTIALS_SECRET_ACCESS_KEY=b2的密钥
PEERTUBE_OBJECT_STORAGE_STREAMING_PLAYLISTS_BUCKET_NAME=桶名
PEERTUBE_OBJECT_STORAGE_STREAMING_PLAYLISTS_PREFIX=streaming-playlists/
PEERTUBE_OBJECT_STORAGE_STREAMING_PLAYLISTS_BASE_URL=https://桶名.s3.us-west-004.backblazeb2.com
PEERTUBE_OBJECT_STORAGE_UPLOAD_ACL=public
PEERTUBE_OBJECT_STORAGE_WEB_VIDEOS_BUCKET_NAME=桶名
PEERTUBE_OBJECT_STORAGE_WEB_VIDEOS_PREFIX=web-videos/
PEERTUBE_OBJECT_STORAGE_WEB_VIDEOS_BASE_URL=https://桶名.s3.us-west-004.backblazeb2.com
把这个文件内容加入到.env 文件内容底部,重启peertube容器就好了。
转移本地文件到对象存储,这个可以按照官方的教程走,转移后会删除服务器本地的文件,但是我发现有些视频还是没删除,暂时未知。但是视频的请求都是来自远程的b2链接。
转移文件到对象存储
安装 PeerTube CLI
安装node
检查 node
node --version # Should be >= 16.x
检查安装
有就不需要安装,没有的话执行下方的安装
sudo npm install -g @peertube/peertube-cli
绑定到 peertube 上
peertube-cli auth add -u 'PEERTUBE_URL' -U 'PEERTUBE_USER' --password 'PEERTUBE_PASSWORD'
不详细介绍了,域名,账户,密码 然后就算绑定了。
转移文件
cd /var/www/peertube-docker
docker compose exec -u peertube peertube npm run create-move-video-storage-job -- --to-object-storage -v [videoUUID]
进入目录这里就是你当时使用docker安装peertube的目录
最后
文件执行时长取决于你本地视频的多少和你服务器和对象存储之间的连接带宽大小,总之需要一会儿。