玩客云安装aliyundrive-webdav + davfs2 + jellyfin 搭建家庭影院
玩客云安装aliyundrive-webdav + davfs2 + jellyfin,搭建家庭影院
1.安装aliyundrive-webdav
aliyundrive-webdav服务的作用是将阿里云网盘变成 Webdav,项目地址:https://github.com/messense/aliyundrive-webdav
使用 pip 从 PyPI 下载:
pip install aliyundrive-webdav
如果系统支持 Snapcraft 比如 Ubuntu、Debian 等,也可以使用 snap 安装:
sudo snap install aliyundrive-webdav
获取 aliyundrive refresh token
命令行运行
aliyundrive-webdav qr login
使用阿里云盘手机版扫码授权后会输出 refresh token
aliyundrive-webdav qr login
将显示出来的token,使用命令行方式启动aliyundrive-webdav
nohup aliyundrive-webdav --port 8881 --refresh-token <前面生成的token> --auth-user <用户名> --auth-password <密码> --workdir /var/run/aliyundrive-webdav &
说明一下,用户名、密码是挂载webdav时需要输入的用户名以及密码,refresh-token、auth-user,auth-password这些参数可以写成环境变量如下
export REFRESH_TOKEN=xxxx export WEBDAV_AUTH_USER=canca export WEBDAV_AUTH_PASSWORD=1234 nohup aliyundrive-webdav --port 8881 --workdir /var/run/aliyundrive-webdav &
查看运行状态
cat nohup.out <unknown time> INFO aliyundrive_webdav::drive: refresh token succeed <unknown time> INFO aliyundrive_webdav::drive: found default drive drive_id=895424 <unknown time> INFO aliyundrive_webdav::webdav: listening on http://0.0.0.0:8881
当显示上面内容,表示已经成功运行了。
aliyundrive-webdav 还有好几个参数可以使用以下命令查看
aliyundrive-webdav help WebDAV server for AliyunDrive Usage: aliyundrive-webdav [OPTIONS] aliyundrive-webdav <COMMAND>Commands: qr Scan QRCode help Print this message or the help of the given subcommand(s) Options: --host <HOST> Listen host [env: HOST=] [default: 0.0.0.0] -p, --port <PORT> Listen port [env: PORT=] [default: 8080] --client-id <CLIENT_ID> Aliyun drive client_id [env: CLIENT_ID=] --client-secret <CLIENT_SECRET> Aliyun drive client_secret [env: CLIENT_SECRET=] --drive-type <DRIVE_TYPE> Aliyun drive type [env: DRIVE_TYPE=] Possible values: - resource: Resource drive - backup: Backup drive - default: Default drive -r, --refresh-token <REFRESH_TOKEN> Aliyun drive refresh token [env: REFRESH_TOKEN=] -U, --auth-user <AUTH_USER> WebDAV authentication username [env: WEBDAV_AUTH_USER=] -W, --auth-password <AUTH_PASSWORD> WebDAV authentication password [env: WEBDAV_AUTH_PASSWORD=] -I, --auto-index Automatically generate index.html -S, --read-buffer-size <READ_BUFFER_SIZE> Read/download buffer size in bytes, defaults to 10MB [default: 10485760] --upload-buffer-size <UPLOAD_BUFFER_SIZE> Upload buffer size in bytes, defaults to 16MB [default: 16777216] --cache-size <CACHE_SIZE> Directory entries cache size [default: 1000] --cache-ttl <CACHE_TTL> Directory entries cache expiration time in seconds [default: 600] --root <ROOT> Root directory path [default: /] -w, --workdir <WORKDIR> Working directory, refresh_token will be stored in there if specified --no-trash Delete file permanently instead of trashing it --read-only Enable read only mode --tls-cert <TLS_CERT> TLS certificate file path [env: TLS_CERT=] --tls-key <TLS_KEY> TLS private key file path [env: TLS_KEY=] --strip-prefix <STRIP_PREFIX> Prefix to be stripped off when handling request [env: WEBDAV_STRIP_PREFIX=] --debug Enable debug log --no-self-upgrade Disable self auto upgrade --skip-upload-same-size Skip uploading same size file --prefer-http-download Prefer downloading using HTTP protocol --redirect Enable 302 redirect when possible -h, --help Print help (see a summary with '-h') -V, --version Print version
说明一下, --auto-index参数是自动生成index.html的意思,如果不加该参数的话,在浏览器访问ip:8881时,输入用户和密码后,会显示405错误。
2.安装davfs2,将webdav挂载到玩客云
sudo apt-get install davfs2
安装好后,挂载webdav
mount -t davfs http://127.0.0.1:8881/ /mnt/aliyundrive //提示输入用户 canca //提示输入密码 1234
卸载webdav
umount /mnt/aliyundrive
如果想不用每次挂载都输入用户名或密码,可以这样设置
echo "/mnt/aliyundrive <username> <password>" >> /etc/davfs2/secrets
/mnt/aliyundrive为挂载目录,username,password为webdav设置的用户名以及密码
挂载成功后,进入/mnt/aliyundrive目录,查看目录文件,应该能看到网盘的文件
3.安装jellyfin 官网 https://jellyfin.org
使用apt安装的话,安装不上,网速很慢,后来使用官网的另一种方法安装
wget -O- https://repo.jellyfin.org/install-debuntu.sh | sudo bash
重试了好几次,就可以安装上了,安装上后可以在地址栏上输入127.0.0.1:8096,就可以访问到页面!
然后按照提示配置就可以了。
4.如何设置随系统启动
为了方便启动aliyundrive-webdav,所以建个脚本启动,如下
#!/bin/bash returnValue=0 serviceFile=aliyundrive-webdav export REFRESH_TOKEN=xxxxx export WEBDAV_AUTH_USER=canca export WEBDAV_AUTH_PASSWORD=1234 startServer(){ echo "start $serviceFile" nohup aliyundrive-webdav --port 8881 --workdir /var/run/aliyundrive-webdav & returnValue=$? } stopServer(){ echo "stop $serviceFile" pidList=`ps -ef |grep "$serviceFile"|grep -v "grep"|awk '{print $2}'` if [ -n "$pidList" ]; then kill -9 $pidList fi returnValue=0 } case "$1" in start) startServer ;; stop) stopServer ;; restart) stopServer startServer ;; *) echo $"Usage: $0 {start|stop|restart}" returnValue=1 esac exit $returnValue
1.设置aliyundrive-webdav自动动
nano /etc/rc.local #尾部添加 nohup /mnt/software/webdav-service.sh start &
2.设置启动后自动挂载webdav
nano /etc/rc.local #尾部添加 mount -t davfs http://127.0.0.1:8881/ /mnt/aliyundrive