前面介绍了使用世纪互联OneDrive搭建Olaindex的直链存储解决方案,但是由于正版世纪互联价格较贵,教育版帐号又存在风险,所以此次再介绍一个使用天翼云盘来搭建直链存储服务的补充方案,程序是来自萌咖大佬的CTList,详细搭建教程如下:
1. 安装
1.1 申请天翼帐号
老用户就不用申请了,新用户点击→传送门,选择短信验证码登录即可。
1.2 下载CTList
#新建并进入CTList目录
mkdir /目录/CTList && cd /目录
#64位系统下载
wget https://raw.githubusercontent.com/iiiiiii1/CTList/master/exec/amd64/linux/CTList
#32位系统下载
wget https://raw.githubusercontent.com/iiiiiii1/CTList/master/exec/i386/linux/CTList
#arm架构下载
wget https://raw.githubusercontent.com/iiiiiii1/CTList/master/exec/arm/linux/CTList
#给予权限
chmod +x CTList
#下载配置文件
wget https://raw.githubusercontent.com/iiiiiii1/CTList/master/config.json
#下载默认的主题文件
wget https://raw.githubusercontent.com/iiiiiii1/CTList/master/index.html
1.3 编辑config.json
[
{
"Enable": 1, #状态. 0:关闭; 1:打开
"UserName": "填用户名", #天翼云盘登陆用户名,不需要@189.cn
"Password": "填密码", #天翼云盘登陆密码
"CaptchaMode": "https://api.moeclub.org/SampleCode", #验证码. 0:遇到验证码拒绝登陆; 1:手动输入验证; 其他:自动识别验证码的API
"ViewMode": 0, #显示模式. 0:自动识别; 1:只使用网页模式; 2:只使用WebDAV模式
"RefreshToken": "", #天翼网盘会话. 保持默认,如果出现异常,请将该值清空
"SubPath": "/", #指定某帐户挂载在网站的某个目录,多帐户时每个目录值必须唯一
"RootPathId": "填目录ID", #展示天翼网盘目录的ID,根目录为-11
"HideItemId": "填隐藏目录ID", #不展示某个目录或文件的ID,每项用"|"分隔
"AuthItemId": "填加密目录", #加密某个目录或文件. "<文件或者目录的ID>?<加密模式>?<用户名>:<密码>"
"RefreshURL": 189, #下载直链缓存的秒数. 超时则被动更新
"RefreshInterval": 1800 #刷新目录结构. 如果不常更新,建议设置更长时间
}
]
如果没啥特殊需求,只需要填写帐号密码即可即前4项
,如果使用期间有修改过配置文件,需要重启程序见2.1
。
1.4 调高limits
这里调整下limits
,否则linux高并发情况下运行会出错,使用命令:
[ -f /etc/security/limits.conf ] && LIMIT='262144' && sed -i '/^\(\*\|root\)[[:space:]]*\(hard\|soft\)[[:space:]]*\(nofile\|memlock\)/d' /etc/security/limits.conf && echo -ne "*\thard\tmemlock\t${LIMIT}\n*\tsoft\tmemlock\t${LIMIT}\nroot\thard\tmemlock\t${LIMIT}\nroot\tsoft\tmemlock\t${LIMIT}\n*\thard\tnofile\t${LIMIT}\n*\tsoft\tnofile\t${LIMIT}\nroot\thard\tnofile\t${LIMIT}\nroot\tsoft\tnofile\t${LIMIT}\n\n" >>/etc/security/limits.conf
注:windows
系统下不需要设置
1.5 启动CTList
目前程序启动改成了授权模式,首先需要有申请码,然后生成授权码→传送门。
关于申请码,可以去Rat大佬相关博文下的评论区留言申请→传送门。
如果想支持下萌咖大佬,也可以前往萌咖杂货店花点小钱,选择捐赠#11
即可,杂货店→传送门,购买后可通过提交工单或者加群来获取申请码。
#直接运行
/目录/CTList -a "授权码" -bind 0.0.0.0 -port 端口号
#后台运行
/目录/CTList -a "授权码" -bind 0.0.0.0 -port 端口号 -d
1.6 开机自启
这里新建一个简单的systemd
配置文件,适用CentOS 7
、Debian 8+
、Ubuntu 16+
。
#设置你的运行监听端口,即你可以通过 ip:端口号 访问程序,这里默认8000
port="端口号"
#设置你的授权码,自行修改
AUTH_TOKEN="32位授权码"
#将以下代码一起复制到SSH运行
cat > /etc/systemd/system/ctlist.service <<EOF
[Unit]
Description=ctlist
After=network.target
[Service]
Type=simple
ExecStart=/目录/CTList -a "授权码" -bind 0.0.0.0 -port "端口号" -l
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
#启动并设置开机自启
systemctl start ctlist
systemctl enable ctlist
1.7 宝塔域名反代
进入宝塔面板,新建一个站点,然后点击设置
-反向代理
,开启反代。其中目标URL
一栏输入http://127.0.0.1:端口号
,其他不变,点击保存,此时浏览器输入域名即可访问。
2. 相关
2.1 常用指令
启动:systemctl start ctlist
停止:systemctl stop ctlist
重启:systemctl restart ctlist
查看状态:systemctl status ctlist
2.2 访问地址
根据配置文件中的SubPath
项中参数访问网盘自定义地址。
#多帐户时,确保 SubPath 项唯一
当 SubPath 配置为空 "" 或者为单斜杆 "/" 时,
访问路径为 http://0.0.0.0
当 SubPath 配置为具体字段 "/CTList" 时, "/CTList" 可以修改成自己喜欢的字段,
访问路径为 http://0.0.0.0/CTList
2.3 寻找目录ID
用于RootPathId
、HideItemId
、AuthItemId
配置项,登陆https://cloud.189.cn
,进入需要操作的目录,查看地址栏最后的数字就是这个目录的ID
。
文件ID
需要浏览器F12
查看请求项。
2.4 加密目录
AuthItemId
配置项采用HTTP 401
认证方式加密。
#单个写法
"AuthItemId": "-11?0?UserName:Password"
#多个写法
"AuthItemId": "-11?0?UserName:Password|-16?1?UserName:Password"
#字段解析
<文件或者目录的ID>?<加密模式>?<用户名>:<密码>
#加密模式,加密文件选0和1效果相同
0: 只加密这一层文件夹,可以直接访问这层文件夹内部的内容
1: 加密这个文件夹的所有子项目
2.5 刷新策略
#4个刷新逻辑完全异步,互不影响
Token(登陆保活): 60 * 60 * 10
Cookie(会话授权): 60 * 30
RefreshURL(真实下载链接): 189 (配置文件可改 <RefreshURL>)
RefreshInterval(刷新目录结构): 60 * 15 (配置文件可改, 全局最小值生效 <RefreshInterval>)
2.6 nPlayer挂载
#网络 --> 添加 --> WebDAV
#主机: 填写域名
#路径: 填写 SubPath 值. 如: /CTList
#其他请按照情况填写
#优势: 在播放器中可以播放各种编码格式的视频
#可以适当的将最小缓存时间调小,提高浏览体验
2.7 报错
400(Not Found URL) #未能找到该文件的链接
404(Not Found) #未完成初次缓存目录结构或文件路径不正确
422(Not Found Real URL) #未能生成真实的文件下载链接(一般是文件被举报了,无法下载)
5XX #一般是服务器端的问题. 部分可能的情况有: 主程序没开, 端口不通, 反代配置不正确
3. 卸载
#未设置开机自启
rm -rf /目录/CTList
#设置过开机自启
systemctl stop ctlist
systemctl disable ctlist
rm -rf /目录/CTList /etc/systemd/system/ctlist.service
本文参考自Rat's Blog,版权归原作者所有。