# Obsidian 图片上传链路诊断器 ## 诊断流程样例:Obsidian 图片上传失败 ### 输入 - 用户现象:Obsidian 粘贴图片时报 `upload failed, check dev console` - Vault 路径:`~/Documents/notes-vault` - 本机 PicGo 配置:PicGo app 配置、日志、localhost upload endpoint - 可选只读探针:本机已有阿里云 OSS AK/SK,不回显 secret ### 工具入口 ```bash python /Users/bytedance/Documents/info-bu/tools/picgo-oss-diagnostic/check_picgo_oss.py \ --vault ~/Documents/notes-vault \ --probe-upload \ --aliyun-readonly ``` ### 检查步骤 | 层级 | 检查 | 成功信号 | 失败信号 | |---|---|---|---| | Obsidian 插件 | 读取 PicGo/上传插件配置,确认 upload URL 和端口 | vault 指向当前 PicGo endpoint | vault 配置缺失、端口不一致、多个 vault 指向冲突 | | PicGo 本地服务 | 检查 `127.0.0.1:<port>` 监听和 `/upload` 响应 | 端口监听,接口可返回结构化响应 | 端口未监听、连接拒绝、接口 404/500 | | PicGo 上传链路 | 用测试图片触发上传并解析日志 | 返回图片 URL 或 PicGo 层明确成功 | PicGo 日志出现 HTTP status/errorCode | | OSS/RAM/账务 | 只读查询 AK 身份、RAM LastUsed、bucket Head/List、账户余额 | AK 可识别、bucket 可访问、账务正常 | `UserDisable`、欠费余额、AK 无权限或被删除 | ### 预期输出 ```text result: failed root_cause: oss_user_disable_or_arrears local_chain: obsidian_config: ok picgo_port: ok 127.0.0.1:36677 picgo_upload_endpoint: ok remote_chain: aliyun_ak_identity: ok masked=LT*** ram_last_used: ok oss_bucket: failed 403 UserDisable account_balance: failed -29.98 CNY next_action: 充值或恢复阿里云账号后重试上传;无需重配 Obsidian/PicGo,也不要先轮换 AK。 ``` ### 失败时的判断 如果本地链路全绿但 OSS 返回 `403 UserDisable`,结论应直接指向账号或服务状态,而不是继续怀疑 Obsidian 插件。若 AK 无法识别或 bucket 返回权限错误,则建议检查 RAM 权限、bucket policy 或重新配置 PicGo 凭证。