周末任务,安装Rclone挂载GDrive,搭媒体库看看效果,可行就省得下载完上传Onedrive了(目前Onedrive上传有点慢)。
周六晚开始部署,目标是用服务器下载资源(因为服务器带宽很大,下载起来无敌爽)后,将文件转移到本地挂载的Gdrive网络硬盘,再通过搭建媒体服务器实现在线播放。方案就是Rclone + Gdrive + Plex/Jellyfin/Kodexplorer .
[su_note][/su_note]
[su_heading size="16" align="left"]安装Rclone[/su_heading]
Rclone是一款强大的网盘挂载工具,支持数十种类型的网盘,将网盘挂载到本地文件系统就可以随意挥霍服务器空间啦。
项目地址:https://github.com/ncw/rclone
CentOs 下安装方法:
curl https://rclone.org/install.sh | sudo bash
yum install fuse -y
初始化配置:
rclone config
以下为配置参考:
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> n #选n,新建
name> Mo #名称,随意,后面有用
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / A stackable unification remote, which can appear to merge the contents of several remotes
\ "union"
2 / Alias for a existing remote
\ "alias"
3 / Amazon Drive
\ "amazon cloud drive"
4 / Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc)
\ "s3"
5 / Backblaze B2
\ "b2"
6 / Box
\ "box"
7 / Cache a remote
\ "cache"
8 / Dropbox
\ "dropbox"
9 / Encrypt/Decrypt a remote
\ "crypt"
10 / FTP Connection
\ "ftp"
11 / Google Cloud Storage (this is not Google Drive)
\ "google cloud storage"
12 / Google Drive
\ "drive"
13 / Hubic
\ "hubic"
14 / JottaCloud
\ "jottacloud"
15 / Local Disk
\ "local"
16 / Mega
\ "mega"
17 / Microsoft Azure Blob Storage
\ "azureblob"
18 / Microsoft OneDrive
\ "onedrive"
19 / OpenDrive
\ "opendrive"
20 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
21 / Pcloud
\ "pcloud"
22 / QingCloud Object Storage
\ "qingstor"
23 / SSH/SFTP Connection
\ "sftp"
24 / Webdav
\ "webdav"
25 / Yandex Disk
\ "yandex"
26 / http Connection
\ "http"
Storage> 12 #选择自己的网盘类型,我这次要挂载的是GoogleDrive
** See help for drive backend at: https://rclone.org/drive/ **
Google Application Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id> #留空就行
Google Application Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret> #留空
Scope that rclone should use when requesting access from drive.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / Full access all files, excluding Application Data Folder.
\ "drive"
2 / Read-only access to file metadata and file contents.
\ "drive.readonly"
/ Access to files created by rclone only.
3 | These are visible in the drive website.
| File authorization is revoked when the user deauthorizes the app.
\ "drive.file"
/ Allows read and write access to the Application Data folder.
4 | This is not visible in the drive website.
\ "drive.appfolder"
/ Allows read-only access to file metadata but
5 | does not allow any access to read or download file content.
\ "drive.metadata.readonly"
scope> 1 #1,全部权限
ID of the root folder
Leave blank normally.
Fill in to access "Computers" folders. (see docs).
Enter a string value. Press Enter for the default ("").
root_folder_id> #回车
Service Account Credentials JSON file path
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Enter a string value. Press Enter for the default ("").
service_account_file> #回车
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n #选择n
Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> n #选择n(重要)
If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=xxxxxxxxxx.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=xxxxxxxxxxxxxxxxx
Log in and authorize rclone for access
Enter verification code> xxxxx #复制上面的链接到浏览器打开,填入获取到的验证码(自行科学)
Configure this as a team drive?
y) Yes
n) No
y/n> y #选择y
Fetching team drive list...
No team drives found in your account--------------------
[Mo]
client_id =
client_secret =
service_account_file =
token = {"access_token":"xxxxxxxxx"}
team_drive =
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y #选择y
Current remotes:
Name Type
==== ====
Mo drive
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q #选择q退出
配置完成,由于版本更新初始化选项可能不同,自己看着选~
挂载:
使用以下命令和参数挂载,修改DriveName:Folder LocalFolder , DriveName 是上面填的的 name(我的是Mo),Folder 是 Google Drive 里的文件夹,LocalFolder 是服务器上的本地文件夹。
/usr/bin/rclone mount DriveName:Folder LocalFolder \
--umask 0000 \
--default-permissions \
--allow-non-empty \
--allow-other \
--transfers 4 \
--buffer-size 32M \
--low-level-retries 200 \
--dir-cache-time 12h \
--vfs-read-chunk-size 32M \
--vfs-read-chunk-size-limit 1G
挂载成功,df -hT 查看:
以前申请的美国西南学院教育邮箱含无限量Google Drive,挂载一看1PB,随便用...
开机自启动:
一样修改DriveName:Folder LocalFolder,
然后全部复制进ssh执行。
cat > /etc/systemd/system/rclone.service <<EOF
[Unit]
Description=Rclone
AssertPathIsDirectory=LocalFolder
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/rclone mount DriveName:Folder LocalFolder \
--umask 0000 \
--default-permissions \
--allow-non-empty \
--allow-other \
--buffer-size 32M \
--dir-cache-time 12h \
--vfs-read-chunk-size 64M \
--vfs-read-chunk-size-limit 1G
ExecStop=/bin/fusermount -u LocalFolder
Restart=on-abort
User=root
[Install]
WantedBy=default.target
EOF
启动(CentOs 7):
systemctl start rclone
开机自启:
systemctl enable rclone
[su_heading size="16" align="left"]安装Plex或Jellyfin[/su_heading]
Plex
Plex 介绍:
Plex 是一款功能和客户端相当齐全的家庭媒体库应用,可进行转码和在线播放,索引和自动拉取IMBD影片信息。
官方网址:https://www.plex.tv
安装:
下载 Plex Media Server :https://www.plex.tv/zh/media-server-downloads/,选择自己的系统下载对应的安装包。
Centos 7:
wget https://downloads.plex.tv/plex-media-server-new/1.15.1.791-8bec0f76c/redhat/plexmediaserver-1.15.1.791-8bec0f76c.x86_64.rpm
yum install plexmedia*.rpm
启动和设置自启:
systemctl start plexmediaserver
systemctl enable plexmediaserver
启动后就可以通过 http://IP:32400 进行访问(如有防火墙请自行开放端口)。
然后安装在服务器有个坑,Plex首次不允许远程访问,进去会显示找不到服务器。
解决方法:
使用Putty设置ssh端口转发,打开Putty,Session先填好服务器Ip,到 Connection--SSH--Tunnels 设置端口转发,Source port 填一个本地端口,Destination 填 127.0.0.1:32400,如下图:
之后火狐浏览器设置手动代理,访问http://localhost:2019/web (没错就是localhost),进入后设置账户密码,然后 设置--远程访问--启用远程访问
设置完后即可关掉ssh端口转发,以后都通过 http://IP:32400 访问就行。有多余的域名反代32400端口就可以使用域名访问了。
添加媒体库,目录选Gdrive 挂载的文件夹,开始使用!
截图:
Jellyfin
Jellyfin也是一款很不错的媒体库应用,使用ffmpeg实时转码,也能拉取资源信息,开源免费。
项目地址:https://github.com/jellyfin/jellyfin
使用手册:https://jellyfin.readthedocs.io/en/latest/
安装:
Centos 7:
yum install libicu fontconfig -y
wget https://repo.jellyfin.org/releases/server/centos/jellyfin-10.2.2-1.el7.x86_64.rpm #若版本更新请自行更换下载地址
yum install -y jellyfin-10.2.2-1.el7.x86_64.rpm
启动和自启动:
systemctl start jellyfin
systemctl enable jellyfin
启动后访问 http://IP:8096 即可(如有防火墙请放行8096端口)。
安装ffmpeg:
Jellyfin播放视频时需要用ffmpeg实时转码,所以还需要安装ffmpeg并在Jellyfin设置里填上ffmpeg文件夹路径。
wget https://ley.best/media/ffmpeg.tar.gz
tar -xvf ffmpeg.tar.gz
cp ffmpeg/ffmpeg /usr/bin/
然后到Jellyfin 控制台--转码--FFmpeg 路径 填入 刚才ffmpeg的文件夹路径(/root/ffmpeg) ,保存。
添加媒体库,填入Gdrive挂载路径,开始玩耍!
[su_heading size="16" align="left"]使用体验[/su_heading]
Rclone比想象中好用,文件传到Google Drive的速度在30~40MB/s 左右,基本跑满上传带宽了,很强!(接下来必须挂载Onedrive看看速度,现在的上传方式速度很不理想,如果也是三十四兆的速度,emmm爽哭)
两种媒体库功能都很强大,就是全都实时转码,看视频时单核CPU都得飚满,所以单核的服务器体验就不是很好,但是本地也可以搭成家庭媒体库,普通电脑应该都能跑得好好的,自己也有公网IP,改天自己电脑搭个玩玩。另外Plex还可以装进NAS。
于是,因为转码的关系体验一般,那就想一个不转码的在线播放方案,试了几个最后选了可道云。
可道云
可道云,可用来协同办公的私人云存储,功能也不错。可以用来在线播放音乐和视频。可道云有个离线下载可以下载直链还挺好用的,我还拿来下github zip,国内GitHub速度你懂的,下完再从可道云下载到本地。
更多介绍看官网:https://kodcloud.com/
安装方法(linux下)官方也给得很详细:http://bbs.kodcloud.com/thread-1-1-1.html
我自己有lnmp环境了,直接将可道云安装包解压丢进网站目录就能使用了。
然后,可道云目录在网站目录里,也就是用户data目录也在里面(不能任意指定),而Rclone挂载的Gdrive在其他目录,读取不到啊。
想个办法,我用 mount --bind
(很很好用这个东西)将Gdrive目录绑定挂载到可道云的用户data目录,解决。
然后试试播放效果,还挺好用的!
截图:
[su_heading size="16" align="left"]总结[/su_heading]
Rclone挂载Google Drive效果很不错(国内是访问不了GDrive的,所以之前也一直闲置着,现在通过服务器中转一次就没得问题了),接下来也试试挂载Onedrive试试速度,Plex和Jellyfin功能齐全,解码吃U,单U就算了,局域网或有公网IP可以用用。想搭私有云的话可以试试可道云,其他的私有云也挺多的,nextcloud, owncloud, seafile, kiftd等等。
现在使用aria2下载电影,人人影视linux端下载美剧到服务器,速度10~40MB/s,下载完脚本自动将影片通过Rclone转至Gdrive,速度30~40MB/s,用可道云在线观看,体验还是不错的。
周末任务完成~
Comments | NOTHING