ByteNoteByteNote
上传结果要一行一个地址
字

字节笔记本

2026年10月7日 · 约 3 分钟读完

上传结果要一行一个地址

API中转
¥120

自定义图片上传的返回,对话里先写成一份 JSON。成功时带布尔字段、一段消息和图片地址。失败时只留布尔值和原因。后来对着文档改口:自定义命令不要 JSON。

窗口写失败时输出却是成功

中间有一次运行,窗口标题是验证失败。输出却是成功为真、消息为 success,并带了一个图片地址。对话据此认为上传已经成功,只是界面和结果不一致,并让人去检查自定义命令有没有配上、脚本是否打出预期 JSON、Typora 有没有解析这份 JSON。

这个判断停在 JSON 长得像成功。验证失败更可能是因为自定义命令根本不读这三個字段。脚本路径属于本机用户目录,不要写进仓库或文章。那次输出里的具体图片主机也不要抄。

最后几行才是地址

用户要求按文档再看。最后一版是纯文本。可以先有一行任意说明,例如上传成功这样的字样。后面每张图一行地址。Typora 从输出末尾取行,行数等于这次上传的张数。不需要 success,不需要 msg。

text
Upload Success:
http://remote-image-1.png
http://remote-image-2.png

两张图就取最后两行。说明行在更上面,不会被当成地址,只要它不挤进最后那几行。只上传一张时,最后一行必须是这张图的地址。前面的 JSON 若占了多行,最后几行不是地址,验证就会失败。这和窗口上的验证失败对得上。

最后几行必须是图片地址

中间还有一版把 JSON 和最后几行写在一起,并要求地址以 http、https 或 file 开头。最后一版把 JSON 去掉了。以最后一版为准。自定义命令打出 JSON 字符串,即使里面有地址字段,也不等于按文档交卷。

文档里还列出可选工具:仅 macOS 的 iPic、uPic、Picsee,命令行的 PicGo-Core,图形界面的 PicGo,以及 Upgit。这些是现成上传器。自定义命令是另一条。用现成工具时不必自己打这几行。只有走自定义命令,才按纯文本来。

配置在偏好设置里选择上传工具。上传可以手动选图,也可以在插入时自动上传,自动可以全局开,也可以只对单个文件开。测试用 Test Uploader。对话没有给出按钮的其他名字。

验证失败先改成纯文本

第三方上传和存储要自己看隐私与条款。对话把这句写进注意事项。返回格式对了,不代替服务条款。

多张图的行数必须和张数一致。少一行,最后一张对不上。多一行说明挤在末尾,说明会被当成地址。说明放在地址之前。

地址要是完整的一行。对话的示例是 http 开头的占位名。换成你的真实地址时仍占一行,不要把 JSON 包在外面。

第一版失败格式只有 success 和 msg,没有地址。自定义命令失败时,文档这一段没有规定错误 JSON。不要为了失败再打那两個字段。命令失败应让进程以非零退出,而不是打一份看起来像说明的 JSON。对话没有写退出码,所以退出码是补充,地址行仍以文档为准。

看文档之后的那一版明确写了不需要 JSON、输出是纯文本、第一行可以是任意文字、之后每行一个地址。这四句是这篇的结论。

相关文章

分享: