尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

踩坑复盘:AList 115网盘文档预览从失效到恢复,一篇讲透完整排查路径

踩坑复盘:AList 115网盘文档预览从失效到恢复,一篇讲透完整排查路径 踩坑复盘AList 115网盘文档预览从失效到恢复一篇讲透完整排查路径【免费下载链接】alist️A file list/WebDAV program that supports multiple storages, powered by Gin and Solidjs. / 一个支持多存储的文件列表/WebDAV程序使用 Gin 和 Solidjs。项目地址: https://gitcode.com/GitHub_Trending/al/alistAList 是一个支持多存储的文件列表/WebDAV 程序把 115网盘 等几十种存储服务统一挂到 Web 界面。前几天有用户反馈AList 里配好的 115 存储目录一切正常可点开文档预览就一直转圈。这篇文章就是这次 AList 115网盘 文档预览修复的全过程复盘按现象 → 定位 → 修复 → 加固的顺序讲清楚方便你下次预览失效排查时直接照搬。 现象列表正常点文档却只转圈排查前最容易踩的坑是分不清到底哪一步坏了。用户这边存储列表能正常加载文件名、缩略图、目录树都显示正常唯独点击打开文档时页面一直转圈服务端日志最后报出 403。列表正常但预览挂掉这个现象本身就很有指向性说明目录读取接口没问题出问题的只是点击时获取临时链接这一段。AList 的 115 驱动位于 drivers/115/列表走List预览依赖Link方法。把故障面锁定到Link后面所有排查就有了固定起点不用全盘翻代码。 先查什么Cookie 到底还活着吗AList 115 Cookie配置 里Cookie 是唯一的核心登录凭证备选方案是扫码 token。在 drivers/115/util.go 的login()中驱动会先从 Cookie 解析出 UID、CID、SEID、KID再调用LoginCheck()向服务端确认会话是否有效。这次故障里会话检查是通过的存储能启用、列表能读本身就说明 Cookie 还有效。如果你遇到的是反面情况——存储直接启用失败日志里刷 failed to login by cookies——那八成是 Cookie 本身过期或字段不全正确做法是回浏览器开发者工具重新抓一份完整 Cookie而不是去动预览逻辑。 预览链接从哪来PickCode 与 DownloadWithUA排除认证问题后我把重点放到链接生成上。drivers/115/driver.go 里Link的核心步骤其实就三步取文件的 PickCode这是 115 文件的唯一标识把 PickCode 连同请求的 User-Agent 交给 SDK 的DownloadWithUA向 115 要一条临时下载链接服务端返回一个 CDN 地址和应当随附的请求头驱动把两者打包成链接对象给前端。文档预览本质就是拿到这条链接再读内容所以只要链接和请求头是对的预览就该成立。可 403 偏偏就出在这一步。️ 真凶CDN 请求里没带 Cookie关键在于 115 网盘的一个特性CDN 在下载请求上要求账号 Cookie。但 SDK 是在 HTTP 传输层发 Cookie 的所以返回的下载信息里 Header 字段中并不含 Cookie。AList 的代理模式下文件流由服务端替前端转发用的正是这组返回的 Header。Header 里没有 CookieCDN 直接拒绝也就是日志里那条 no cookie value 的 403。修复逻辑只有三行Link返回前检查 Header 是否已有 Cookie没有就补上存储配置里的那份。这个改动不影响直链模式却让代理模式下的文档预览和在线播放全部恢复。⏱️ 别忘了两个隐藏变量限速与 App 版本号顺带还核对了两个容易让预览时好时坏的因素请求限速驱动的LimitRate默认 2 次/秒。有用户把它调得很低点击文档时请求先经过WaitLimit排队拿链接直接超时表现就是预览永远转圈。限速值要适度放宽别一味压低App 版本号115 请求头里带着形如Mozilla/5.0 115Browser/xxx的版本号。驱动启动时会去 115 版本接口拉最新的 win 端版本号拉取失败才回退到内置值。这也是 115网盘驱动更新 的必要性所在——官方 API 或风控一变修复点往往在驱动里的版本号和参数而不是用户侧配置。所以预览失效排查的第一步其实是先升级 AList 和 115 驱动版本再试一次能省掉大量无效深挖。 排查顺序速查表顺序检查项判断标准1存储能否启用、列表能否读启用失败 → Cookie/扫码 token 失效重新抓 Cookie2日志中的 403 报文出现 no cookie value → CDN 请求缺 Cookie核对链接 Header 补齐逻辑3存储里的 LimitRate 配置值过低 → 链接请求排队超时预览一直转圈4AList 与 115 驱动版本官方接口变更后驱动内 appVer、请求参数可能过期5文件类型预览依赖前端播放器个别文档格式天然不支持一句话收束预览链路是PickCode → DownloadWithUA → CDN 地址 请求头403 多半是 Header 缺 Cookie转圈多半是限速或版本号过期。把这条路径记牢下次 115 文档预览再失效你大概半天都不用查。【免费下载链接】alist️A file list/WebDAV program that supports multiple storages, powered by Gin and Solidjs. / 一个支持多存储的文件列表/WebDAV程序使用 Gin 和 Solidjs。项目地址: https://gitcode.com/GitHub_Trending/al/alist创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表