侧边栏壁纸
  • 累计撰写 64 篇文章
  • 累计创建 46 个标签
  • 累计收到 93 条评论

目 录CONTENT

文章目录

docker搭建xiaoya-alist并解除下载限速

草莓牛奶
2024-04-13 / 0 评论 / 0 点赞 / 8 阅读 / 1,286 字 / 正在检测是否收录...
温馨提示:
「博客文章out of date 会及时更新,无特殊说明仍然有效,欢迎指正内容中的错误」

alist 和阿里云合作之后下载速度只有 4m,开通会员也只有 8m

一、准备工作

一般来说,需要准备3个文件mytoken.txtmyopentoken.txttemp_transfer_folder_id.txt

但是由于需要解除限速,这里额外准备一个opentoken_url.txt,来更换token的认证网站

官方的设置文档详见:如何设置xiaoya的docker——容器内 /data 目录的文件功能说明

①opentoken_url

填写**https://aliyundrive-oauth.messense.me/oauth/access_token**

以下为无法解除限速的api地址

https://api-cf.nn.ci/alist/ali_open/token

https://api.xhofe.top/alist/ali_open/token

……

②myopentoken

访问 aliyundrive-webdav 获取 aliyundrive-webdav 的 refhesh token

image-20240413151459850

用途:用来加载自己的阿里云盘(open接口)

格式:eyJ0eXAiOixxxxxLCJhbGciOiJSUzI1NiJ9.eyJzd999999wNzBkOWRiNWQ5YmQ0YT…

备注:很长一串,280位,获取方式 https://alist.nn.ci/zh/guide/drivers/aliyundrive_open.html

③mytoken

QR Code扫码获取阿里云盘refresh token (aliyuntoken.vercel.app)

或者

阿里云盘/分享 | AList文档 (nn.ci)

用途:用来加载阿里分享,和自动签到

格式:75fee1ca79514e60aa6d46c8370b9afd

备注:32位长度,参考 https://t.me/PlutoPlayer/239324

④temp_transfer_folder_id

直接根据官方的操作
先转存这个 https://www.aliyundrive.com/s/rP9gP3h9asE 到自己网盘(选择资源盘)

然后浏览器打开转存后的目录,浏览器的url https://www.aliyundrive.com/drive/file/resource/640xxxxxxxxxxxxxxxxxxxca8a 最后一串640xxxxxxxxxxxxxxxxxxxca8a,记得这个目录不要删,里面的内容可以定期删除

二、部署容器

将上述4个文件,存放在/path/to/local/(请自己选择一个位置)

以下使用xiaoyaliu官方提供的xiaoyaliu/alist - Docker Image镜像(并不是只有alist-tvbox才能解除限速)

docker run -d \
  --name xiaoya \
  -p 5678:80 \
  -v /path/to/local:/data \
  -v /path/to/local/opentoken_url.txt:/data/opentoken_url.txt:ro \
  --mount type=tmpfs,destination=/opt/alist/data \
  --restart=unless-stopped \
  xiaoyaliu/alist:latest

解除限速的核心就一行,将opentoken_url.txt映射出来,并且给容器只提供只读权限,相信聪明人早就已经想到了。

  1. -d
    • 这是--detach的简写,表示在后台运行容器。
  2. --name xiaoya
    • 指定运行的容器的名称为xiaoya,这允许你通过名字引用容器,例如在启动、停止或查看容器日志时。
  3. -p 5678:80
    • 端口映射配置。将容器内部的80端口映射到宿主机的5678端口。这意味着从宿主机的5678端口发出的请求都会转发到容器的80端口。
  4. -v /path/to/local:/data
    • 挂载宿主机的/path/to/local目录到容器内的/data`目录。这样容器内的应用可以直接访问宿主机的这个目录。
  5. -v /path/to/local/opentoken_url.txt:/data/opentoken_url.txt:ro:
    • 类似于上一个,这是文件级别的挂载,将宿主机的/path/to/local/opentoken_url.txt文件挂载到容器内的/data/opentoken_url.txt:ro保证了容器内部的应用程序可以读取文件,但不能对其进行修改。
  6. --mount type=tmpfs,destination=/opt/alist/data
    • 使用临时文件系统(tmpfs)挂载点,挂载一个临时内存分区到容器的/opt/alist/data。这通常用于存储临时数据,因为tmpfs存储在内存中,数据可以更快地被读取和写入,但容器重启时数据会丢失。
  7. --restart=unless-stopped
    • 设置容器的重启策略。除非明确停止,否则当容器退出时会自动重启。这帮助确保应用持续运行,即使出现错误导致容器崩溃。
  8. xiaoyaliu/alist:latest
    • 指定Docker镜像及其标签。在这个例子中,使用的是xiaoyaliu用户的alist镜像,标签是latest。这指定了运行何种软件以及使用的版本。

注意事项:

  • /path/to/local记得替换!
  • :ro千万别省略,否则xiaoya重启会自动将修改opentoken_url.txt文件的内容,导致登录直接失败
  • --mount type=tmpfs,destination=/opt/alist/data这行看你心情

三、webdav挂载到本地

详见Linux使用rclone自动挂载webdav(PVE下LXC容器)

四、定时重启

由于docker本身并不支持定时重启容器的功能,因此这里借助Linux的crontab

#编辑当前用户的定时任务列表
crontab -e

#定时自动重启名为 'xiaoya' 的容器。
0 0 * * * docker restart xiaoya
  • 第一个 0: 这表示“分钟”部分,0 意味着每小时的第 0 分钟。
  • 第二个 0: 这表示“小时”部分,0 意味着每天的 0 点,也就是午夜。
  • 第三个 \*: 这表示“日期”部分,* 表示每天,不管是月份中的哪一天。
  • 第四个 \*: 这表示“月份”部分,* 表示每个月。
  • 第五个 \*: 这表示“星期”部分,* 表示每星期的任何一天(星期日至星期六)。
0

评论区