阿里云盘令牌在哪里(Docker容器基于WebDav通过Alist挂载(百度网盘/阿里云盘))

首页教程更新时间:2023-05-25 03:19:55

使用过NAS(Network Attached Storage)的朋友都知道,它可以通过局域网将本地硬盘转换为局域网内的“网盘”,简单理解就是搭建自己的“私有云”,但是硬件和网络成本都太高了,有点可望而不可及的意思。Alist开源库则可以满足我们,它能将公共网盘反过来变成一种联网的本地硬盘,使用Web页面来统一挂载和管理,网盘类型包含但不限于:百度网盘、阿里云盘、迅雷网盘等等。

Alist挂载网盘的另外一个好处是可以基于WebDav协议直接播放网盘资源,虽然说网盘也支持在线播放功能,但是代价就是得充会员,没错,这符合逻辑,网盘主机厂也得盈利,但Alist技术可以帮助我们曲线救国,节省一笔开支。

此外,使用WebDAV的精髓在于WebDAV可以被挂载为一个本地(服务器)磁盘,正因为WebDAV可以被映射为一个本地目录,所以只需要调用本地播放器或者本地搭载的浏览器播放器进行播放。无论是mkv、wmv或是h.265编码方案,通过一个现代的本地播放器都能完美的播放,不存在需要转码的情况,所以,使用WebDAV协议,服务器的负担只有传输数据这一个任务。

Docker部署Alist

Alist软件可以通过多种方式进行安装和部署,但最方便的,还是通过Docker,主要是因为由于各大网盘主机厂的网盘版本更新频率很快,所以Alist的版本也会随之频繁更新,而Docker的操作最简单快捷,只需要简单的命令就可以完成部署,更适合这种频繁更新的情况。

关于Docker请移玉步至一寸宕机一寸血,十万容器十万兵|Win10/Mac系统下基于Kubernetes(k8s)搭建Gunicorn Flask高可用Web集群 ,这里不作过多赘述。

首先在终端执行命令:

docker run -d --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" xhofe/alist:latest

该命令会在后台生成一个Alist容器,服务运行在系统的5244端口,如果是首次运行,会拉取最新的Alist镜像:

➜ interview git:(main) docker run -d --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" xhofe/alist:latest Unable to find image 'xhofe/alist:latest' locally latest: Pulling from xhofe/alist b1101342f8ad: Pull complete d9f5c37d20f9: Pull complete 5f4a1655e3cc: Pull complete c1e599f8ce92: Pull complete d613bea8ea45: Pull complete Digest: sha256:520e531ddaf5732c4944d5c35ad4dbb601e2fadae14b99a81e86ea3f7e065173 Status: Downloaded newer image for xhofe/alist:latest 7bf1c7f384526bd22aa078223d548ab0c16b79c245919e8a0cf7b439e79f34d6

随后执行命令:

docker ps

就可以看到正在运行的Alist服务容器:

➜ ~ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7bf1c7f38452 xhofe/alist:latest "/entrypoint.sh" 3 hours ago Up 3 hours 0.0.0.0:5244->5244/tcp alist ➜ ~

Alist服务平台基于前后端分离的Gin和React,所以平台管理页面需要用户名和密码才能登入,输入命令:

docker exec -it alist ./alist admin

该命令会进入容器并展示账号和密码:

INFO[2023-02-13 22:54:17] admin user's info: username: admin password: 8U5js3bH

记录下来,注意这是本地的服务,所以外网是无法进行登录的。

至此,Alist的本地部署就完成了,假如Alist发了新的版本,也可以通过下面的命令进行更新操作:

docker stop alist #停止alist容器 docker rm -f alist #删除alist容器,因为之前映射到了本地,所以数据不会被删除 cp -r /root/data/docker_data/alist /root/data/docker_data/alist.bak #可选,如果不放心,可以备份一下数据 docker pull xhofe/alist:latest #拉取最新的alist镜像 docker run -d --restart=always -v /root/data/docker_data/alist:/opt/alist/data -p 5244:5244 --name="alist" xhofe/alist:latest #运行安装命令,注意-v挂载的路径与原来相同

这里的区别就是通过挂载命令将alist的配置文件挂载到宿主机的/root/data/docker_data/alist目录,方便升级后进行使用。

挂载百度网盘

部署好Alist服务后,访问本地网址进行登录:http://localhost:5244/@manage

用户名和密码就是上文中Docker中返回的,登录成功后,选择左侧菜单中的存储,添加百度网盘:

阿里云盘令牌在哪里,Docker容器基于WebDav通过Alist挂载(百度网盘/阿里云盘)(1)

百度云盘的操作完全基于百度云的开放API,只要给Alist授权操作接口的权限即可,进入网址:https://tool.nn.ci/baidu/callback?code=288faa8f669a3d174ea9af0bd1d72ab5 进行授权操作,记录client_id、client_secret和refresh_token,分别将三个参数填入挂载的表单中,然后挂载目录填入根目录:/,注意表单中最好把web代理选项勾选。

随后进入Alist服务首页:http://localhost:5244,就可以在线播放百度云内存储的资源:

阿里云盘令牌在哪里,Docker容器基于WebDav通过Alist挂载(百度网盘/阿里云盘)(2)

非常方便。

挂载阿里云盘

截止到本文发布的2-14号,阿里云盘目前挂载过程中会出现设备id的bug,但是挂载阿里云盘分享的网盘还是没问题的,由于阿里云盘操作基于客户端的token,所以必须先通过移动端登录页面来获取token:

https://passport.aliyundrive.com/mini_login.htm?lang=zh_cn&appName=aliyun_drive&appEntrance=web&styleType=auto&bizParams=¬LoadSsoView=false¬KeepLogin=false&isMobile=true&hidePhoneCode=true&rnd=0.9186864872885723

登录成功后,通过抓包,获取后端login.do接口的返回值:

阿里云盘令牌在哪里,Docker容器基于WebDav通过Alist挂载(百度网盘/阿里云盘)(3)

将bizExt的值复制出来,然后利用Python的Base64模块进行解码操作:

import base64 coded_string = '''Q5YACgA...''' base64.b64decode(coded_string)

解码出来的refreshToken就是我们需要的令牌:

"refreshToken":"sdfdsfsdfdsfb9fadd4f62ee4be968e"

随后在后台将token和分享的id填入表单即可:

阿里云盘令牌在哪里,Docker容器基于WebDav通过Alist挂载(百度网盘/阿里云盘)(4)

注意这里挂载路径不能填入根目录/,因为之前我们已经挂载了百度网盘了,所以选择一个子目录share。

至此,阿里云盘分享就挂载好了,可以坐下来,犒劳自己了:

阿里云盘令牌在哪里,Docker容器基于WebDav通过Alist挂载(百度网盘/阿里云盘)(5)

Python3.10接入

除了在线播放,我们还可以使用Python3.10直接通过WebDav协议操作Alist挂载的网盘,可谓是神乎其技了。

首先安装WebDav库:

pip3 install webdavclient3

随后编写webdav.py文件:

from webdav3.client import Client options = { 'webdav_hostname': "http://localhost:5244/dav", 'webdav_login': "admin", 'webdav_password': "8U5js3bH" } client = Client(options) client.verify = False # To not check SSL certificates (Default = True) files1 = client.list() print(files1)

这里的webdav_hostname指的是刚才用docker挂载的webdav服务路径,账号和密码是上文中docker返回的,不用担心外泄,因为是本地服务。

程序返回:

➜ gotest /opt/homebrew/bin/python3.10 "/Users/liuyue/wodfan/work/gotest/webdav.py" ['dav/', 'aliyunpan/', 'The.Last.of.Us.S01E03.1080p.WEB-DL.DDP5.1.Atmos.H.264-Q66.mkv', 'The.Last.of.Us.S01E05.1080p.WEB-DL.DDP5.1.Atmos.H.264-Q66.mkv', 'The.Last.of.Us.S01E04.1080p.WEB-DL.DDP5.1.Atmos.H.264-Q66.mkv', 'house.of.the.dragon.s01e08.1080p.web.h264-cakes.chs.eng.mp4', 'House.of.the.Dragon.S01E07.Driftmark.1080p.HMAX.WEB-DL.DDP5.1.Atmos.H.264-SMURF.chs.eng.mp4', 'House.of.the.Dragon.S01E06.The.Princess.and.the.Queen.720p.HMAX.WEB-DL.DDP5.1.H.264-NTb.chs.eng.mp4', 'House.of.the.Dragon.S01E05.We.Light.the.Way.1080p.HMAX.WEB-DL.DDP5.1.Atmos.H.264-SMURF.chs.eng.mp4', 'house.of.the.dragon.s01e04.720p.web.h264-cakes.chs.eng.mp4', 'house.of.the.dragon.s01e03.720p.web.h264-cakes.chs.eng.mp4', 'share/']

可以很方便的将挂在后的网盘文件目录进行返回。

除此之外,我们也可以针对网盘资源进行增删改查的动态操作:

# Create directory client.mkdir("dir1/dir2") # Delete resource client.clean("dir1/dir2") # copy resource client.copy(remote_path_from="dir1/file1", remote_path_to="dir2/file1") client.copy(remote_path_from="dir2", remote_path_to="dir3") # Move resource client.move(remote_path_from="dir1/file1", remote_path_to="dir2/file1") client.move(remote_path_from="dir2", remote_path_to="dir3") # Download a resource client.download_sync(remote_path="dir1/file1", local_path="~/Downloads/file1") client.download_sync(remote_path="dir1/dir2/", local_path="~/Downloads/dir2/") # Upload resource client.upload_sync(remote_path="dir1/file1", local_path="~/Documents/file1") client.upload_sync(remote_path="dir1/dir2/", local_path="~/Documents/dir2/")

也就是说,只要Alist服务已经挂载好网盘,我们甚至不需要平台界面,只编写代码就可以对网盘资源予取予求。

结语

旧时王谢堂前燕,飞入寻常百姓家。只要一台联网的电脑,就可以实现自己的“私有云”,成本低到令人发指,Alist,新时代的普罗米修斯,为我们带来了网盘自由的火种。

,
图文教程
相关文章
热门专题
推荐软件
奇热小说
奇热小说
下载
QQ2019手机版
QQ2019手机版
下载
王者荣耀
王者荣耀
下载
百度浏览器迷你版
百度浏览器迷你版
下载
2345浏览器手机版
2345浏览器手机版
下载
网易邮箱
网易邮箱
下载
爱奇艺
爱奇艺
下载
网易云音乐
网易云音乐
下载
WPSOffice
WPSOffice
下载
优酷
优酷
下载
谷歌浏览器(Chrome)
谷歌浏览器(Chrome)
下载
迅雷看看播放器
迅雷看看播放器
下载
UC浏览器
UC浏览器
下载
QQ音乐
QQ音乐
下载
阿里旺旺买家版v9.12.10C官方版
阿里旺旺买家版v9.12.10C官方版
下载
360安全卫士v12.1官方版
360安全卫士v12.1官方版
下载
猜你喜欢
NBA2K19艾弗森完整纹身MOD
NBA2K19艾弗森完整纹身MOD
下载
批量更名快车V2.0免费版
批量更名快车V2.0免费版
下载
道具店物语
道具店物语
下载
英雄之王破解版
英雄之王破解版
下载
防御指挥塔防
防御指挥塔防
下载
童年街机
童年街机
下载
中消教育
中消教育
下载
生命密码app
生命密码app
下载
DiskDrillMediaRecoveryformacV3.7.934
DiskDrillMediaRecoveryformacV3.7.934
下载
米加小镇世界全部解锁版
米加小镇世界全部解锁版
下载
雄蜂战役破解版
雄蜂战役破解版
下载
黎明初晓
黎明初晓
下载
有赞微小店电脑版
有赞微小店电脑版
下载
佳博58热敏打印机驱动
佳博58热敏打印机驱动
下载
ForkliftmacV3.3.8
ForkliftmacV3.3.8
下载
龙珠祖玛iPhone版
龙珠祖玛iPhone版
下载