Skip to content

docs: clarify 123 pan cross-region deployment limitations#185

Draft
Copilot wants to merge 4 commits into
mainfrom
copilot/update-readme-123-cloud-storage
Draft

docs: clarify 123 pan cross-region deployment limitations#185
Copilot wants to merge 4 commits into
mainfrom
copilot/update-readme-123-cloud-storage

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 21, 2026

  • 定位 README 中 123 免登录与认证相关描述
  • 运行基线验证命令(mvn -pl parser test)
  • 撤回刚刚新增的 123 认证表格条目(避免与当前事实冲突)
  • 将网盘对比表中 123 的“免登陆下载分享”从 √ 改为 x
  • 运行变更后验证并完成最终校验(parallel_validation)
Original prompt

请在仓库 qaiu/netdisk-fast-download 中更新 README.md,补充 123 云盘解析的部署与使用限制说明。

背景:

  • 当前 README 已说明 123 云盘大文件(>100MB)需要登录认证,并提供了 auths.ye.username/password 的配置示例。
  • 但 README 还没有明确提示:123 云盘解析可能受账号地区、访问区域、出口 IP、跨区域访问等因素影响。
  • 这会导致用户误以为“只要配置账密就一定可用”。
  • 实际上,即使已配置认证信息,跨区域访问仍可能失败,这通常更接近网盘侧限制/风控,而不是项目本身故障。
  • 建议用户优先考虑在 NAS、本地网络环境、家庭宽带或目标账号常用地区部署;必要时再结合代理。

请修改 README,要求:

  1. 在 README 顶部现有“注意⚠️”提示区域中,增加一条关于 123 云盘可能存在跨区域访问限制 的提醒。

    • 风格与现有“小飞机解析有IP限制...”等提示保持一致。
    • 语气要清晰但不过度绝对,避免把未经代码证明的细节写成硬性结论。
    • 要强调:即使已配置登录认证,仍可能因访问区域 / 出口 IP / 风控而失败,这通常与网盘侧限制有关。
  2. 在 README 的“认证信息配置说明”部分(123 的 auths.ye 配置示例附近)补充一段说明:

    • 登录认证是必要条件之一,但不保证所有环境都稳定可用;
    • 如果公网云服务器解析异常,而本地 / NAS 环境正常,通常更可能与 123 侧跨区域访问限制或风控相关;
    • 建议优先在本地、家庭宽带或 NAS 环境部署。
  3. 保持 README 原有结构和语气,不要大改,不要引入与本任务无关的修改。

  4. 创建一个 pull request,标题简洁明确,例如:

    • docs: clarify 123 pan cross-region deployment limitations

请直接完成修改并创建 PR。

The following is the prior conversation context from the user's chat exploration (may be truncated):

User: 123解析,当前是否同时支持账密和Authorization

Assistant: 要确认“123解析”当前是否同时支持账号密码和 Authorization,我需要先看一下这个仓库里相关实现。

Assistant: 支持。

从仓库当前代码看,123 解析现在同时支持“账密登录”和“Authorization/Token”两种方式

  • README.mdauth 参数的 JSON 结构明确写了:

    • authType 可为 cookie / accesstoken / authorization / password / custom
    • usernamepassword 用于 password 类型
    • token 用于 cookie / token 类类型
      这说明接口层面已经设计成同时兼容 password 和 authorization
      源码位置:README.md(认证参数说明)
  • parser/src/main/resources/py/123.py 中有 login_123pan(username, password),会调用 123 的登录接口 sign_in 获取 token。
    这说明 123 盘账密登录是有实现的

  • 同仓库文档 parser/doc/API_USAGE.md 里也写了 authType 支持 cookie/accesstoken/authorization;而 README.md 比这个文档更新,额外补充了 password/custom
    我倾向于认为:当前实际能力以 README 为准,已经扩展到 password

所以结论是:

“123解析,当前是否同时支持账密和Authorization?”——是,当前仓库设计上支持两者。
更准确地说:

  • 账密方式:通过 authType: "password",并传 username + password
  • Authorization 方式:通过 authType: "authorization",并传 token

如果你愿意,我可以继续帮你精确定位 123 解析实际消费这两种 authType 的代码位置,确认它不是只写了文档而是后端真正已接入。
另外提醒一下:我这次用到的代码搜索结果最多只返回 10 条,可能不完整。如果你想自己继续看,可在 GitHub 代码搜索里继续查这个仓库:
https://github.com/search?q=repo%3Aqaiu%2Fnetdisk-fast-download+123+Authorization+password&type=code

User: 继续

Assistant: 继续看代码后,可以把结论收紧到:

结论

123 解析当前确实同时支持两种输入方式:

  1. 账密username + password
  2. Token / Authorization 类凭证:通过 token 传入

但要注意一层细节:

  • 在 123 的实际解析实现 Ye2Tool 里,代码直接读取的是 auths.get("token")auths.get("username") / auths.get("password")
  • 也就是说,对 123 来说,真正消费的是 token 字段,不是单独读取一个名为 Authorization 的字段
  • 因此如果你说的 “Authorization” 是指 authType = authorization 这种认证模式,那它在上层 auth 协议/文档中是支持的;落到 123 解析器内部,本质仍然是把值放进 token,最后拼成 Authorization: Bearer {token} 请求头

直接证据

1) 123 解析器类注释已明确写了“支持账号密码或token配置”

parser/src/main/java/cn/qaiu/parser/impl/Ye2Tool.java

/**
 * 123盘解析器 v2 - 使用Android平台API
 * 支持账号密码或token配置
 */

2) 账密登录真实存在,不只是文档

还是 Ye2Tool.java

private Future<String> loginAndGetToken() {
    MultiMap auths = (MultiMap) shareLinkInfo.getOtherParam().get("auths");
    if (auths == null) {
        return Future.succeededFuture("nologin");
    }

    String username = auths.get("username");
    String password = auths.get("password");

    if (username == null || password == null) {
        return Future.succeededFuture("nologin");
    }
    ...
}

这说明 123 会直接读取用户名密码并调用登录接口换 token

另外 README.md 也给了 123 的配置示例:

auths:
  ye:
    username: 你的用户名
    password: 你的密码

并注明:

目前仅支持 123(ye)的认证配置。

3) token 方式也是真实接入的

Ye2Tool.java 里解析文件列表前有这段逻辑:

MultiMap auths = (MultiMap) shareLinkInfo.getOtherParam().get("auths");
if (auths != null && auths.contains("token")) {
    String providedToken = auths.get("token");
    if (StringUtils.isNotEmpty(providedToken)) {
        ssoToken = providedToken;
        tokenFuture = Future.succeededFuture(providedToken);
    }
    ...
}

这说明 如果传了 token,就直接用,不必再走账密登录

4) 最终请求 123 接口时,确实走的是 Authorization 头

Python 参考实现 parser/src/main/resources/py/123.py 里更直观:

headers = {
    'App-Version': '55',
    'platform': 'android',
    'Authorization': f'Bearer {token}',
    ...
}

所以可以明确说:

  • 外部输入支持 token
  • 内部发请求时也确实使用 Authorization 请求头
  • 123 解析器本身读取输入时看的字段名是 token,不是单独的 auth/Authorization 字段

你这个问题最准确的回答

如果你问的是:

“123 解析现在是否同时支持账密和 Authorization?”

答:支持。

更精确地说是:

  • 支持账密登录:传 username/password
  • 支持 Authorization 凭证方式:传 token,然后内部组装成 Authorization: Bearer {token}

但如果你问的是:

“123 解析器是否区分 authType=passwordauthType=authorization 两条完全不同的内部代码路径?”

那答案是:

  • 账密:单独一条路径,先登录再取 token
  • authorization:没有看到 123 解析器去专门读一个独立的 Authorization 字段
  • 它实际消费的是统一的 token 字段

所以 “Authorization 支持”在 123 这里更像是协议层/文档层的认证类型别名,最终落地还是 token 模式

实操建议

如果你现在要给 123 用认证,优先按这两种传:

方式1:账密

{
  "authType": "password",
  "username": "xxx",
  "password": "yyy"
}

方式2:Token

{
  "authType": "authorization...

</details>



<!-- START COPILOT CODING AGENT SUFFIX -->

*This pull request was created from Copilot chat.*
>

Copilot AI changed the title [WIP] Update README.md with deployment and usage limitations for 123 cloud storage docs: clarify 123 pan cross-region deployment limitations May 21, 2026
Copilot finished work on behalf of qaiu May 21, 2026 04:46
Copilot AI requested a review from qaiu May 21, 2026 04:46
Copilot finished work on behalf of qaiu May 21, 2026 05:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants