从 fork 到发布:用 Qoder 重构了一个图床插件

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 一款 VSCode 图床插件,源码仓库 404、代码陈旧、依赖冗余——但刚好拿来试试 Qoder。先建 Wiki 摸清老代码的坑,再用 Spec 模式驱动重构,中间踩了 Region 格式的坑,最后一句指令搞定 OSS 配置、一行命令打包发布。一次从头到尾的 vibe coding记录

日常写博客比较多,我经常需要在 Markdown 里粘贴图片,自动上传到 OSS 并返回链接。刚好有时间就去找了找, 也确实是有现成的, 插件市场里有一个 aliyun oss upload image,但代码是几年前的,源码仓库也 404 了...

2026-07-05-14-37-19

顺着 fork 链找到一份残留代码,clone 下来,开工

工具:Qoder 社区版 + GLM-5.2
项目:https://github.com/felixzhang-glitch/vscode-aliyun-upload-image

先建 Wiki

拿到一份陈旧代码,第一件事很有必要的可能是先搞清楚它到底做了什么、实现路径,以及是否有坑。

Qoder 社区版的 repo wiki 是付费功能(得加钱),所以自己写了个 wiki skills 做简单复刻。跑了一遍,生成系统架构、模块详解、核心流程三部分文档。代码只有 extension.js 179 行加 lib/upload.js 73 行,但 Wiki 梳理出来之后,几个问题直接暴露了:

  • 依赖了 axiosshelljs,实际上代码里根本没用到
  • expiration 变量初始值 0 且从未更新,客户端复用逻辑完全失效
  • 只支持 PNG,剪贴板脚本里的格式检测写死了单一类型
  • package.json 里残留了原作者邮箱和 fork 故事

反正肯定会有坑,先记录下来,让 Agent 后面自己处理就好

2026-07-05-14-48-45

Spec 驱动,让它干活

打开 spec 模式,输入需求:

粘贴图片到 VSCode 直接转换为 Aliyun OSS URL,需要支持常见图片格式,转化为公开 URL,最后发布博客使用。重构代码,保证稳定性,删除冗余代码和原作者私人信息。

剩下的等它自己干。几轮反馈确认——主要是确认方案里哪些命令该删、哪些该留——执行阶段就不用再管了。

2026-07-05-14-50-16

改动不算大,但很琐碎。它逐文件完成的事情:

  • 接管 Cmd+V / Ctrl+V,智能区分图片和文本。有图片上传 OSS,没图片回退正常粘贴
  • 支持 PNG / JPEG / GIF / WebP / TIFF,通过 magic bytes 检测实际格式,扩展名不对就自动重命名
  • Region 格式自动补全。第一次配置我填了 cn-hangzhou,SDK 报 socket hang up,排查发现它是拿 region 直接拼 URL 的,补上 oss- 前缀就通了
  • 移除 axiosshelljsmoment 三个冗余依赖,moment 用原生 Date 替代
  • 删除原作者邮箱、个人域名、fork 故事,overview.md 直接删掉
  • 代码从回调模式改成 async/await,var 改成 const

踩点小坑

Region 的问题值得单独说一句。

报错日志是 socket hang up,请求的 URL 里 domain 是 public-files-dev.cn-hangzhou.aliyuncs.com——少了 oss- 前缀。原因是 ali-oss SDK 把 region 参数直接拼进 endpoint,不做任何处理。你填 cn-hangzhou,它就发到 cn-hangzhou.aliyuncs.com,这个域名不处理 OSS 请求,连接直接挂掉。

解决方式:在 upload.js 里加了一行自动补全,region 不以 oss- 开头就自动补上。然后顺手在 extension.js 里也加了一个 normalizeRegion(),域名替换的时候不会因为 region 格式不一致而匹配失败。

vibe coding 有点问题很正常, 难道不是么

配置 OSS,一句话搞定

需要一个 public 的 OSS bucket 和对应的 AK/SK。

懒人就不去阿里云控制台点来点去了。换个 skills,一句话:

创建 OSS bucket,配置 RAM 用户,生成 AccessKey,权限设为公共读

2026-07-05-14-52-18

配置写进 VSCode 的 settings.json

打包

验证通过,打包。npx vsce package 的时候遇到几个小问题:

  • 项目里有 yarn.lock 但我用的是 npm,vsce 默认检测到 yarn.lock 就调 yarn,需要加 -no-yarn
  • repository 字段为空,vsce 要求必须有,补回了 GitHub 地址
  • 没有 LICENSE 文件,printf 'y\n' 管道自动确认

最后产出一个 .vsixcode --install-extension 就装上了。这个包是 macOS Apple Silicon 上打的,README 里写了其他平台自己打包的流程。

边界

这次没有用 Rules 和 Agents.md,因为项目太小,需求相对明确。但如果是更大的项目,或者需要多轮迭代的场景,这两样东西会让 AI 的决策更稳定。说到底,工具能帮你理清代码,但"为什么这样做"——那个判断还是得人来做

参考

工具:Qoder 社区版 + GLM-5.2
项目:https://github.com/felixzhang-glitch/vscode-aliyun-upload-image

目录
相关文章
|
9天前
|
人工智能 JSON 自然语言处理
让教学更智慧:用阿里云百炼工作流,自动生成中小学教材内容#小有可为#有温度的AI
通过可视化工作流编排,将大模型推理能力转化为标准化的教学内容生成引擎。教师只需输入教材标题和适用学段,即可自动获得结构完整、符合课程标准的章节内容,大幅降低备课门槛,助力教育资源均衡化。
483 125
|
18天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)
|
3天前
|
人工智能 缓存 安全
Claude Code 封号真实原因曝光,这次彻底不装了,直接针对国内开发者的账号下手?
Claude Code 封号潮背后:逆向扒出客户端隐写区域标记,Anthropic 政策收紧叠加 DeepSeek 7 月涨价,国产替代更紧迫。
|
5天前
|
人工智能 安全 Cloud Native
Higress 新发布:AI Gateway 能力增强,Gateway API 及其推理扩展持续打磨
增强 AI 网关能力,持续打磨 Gateway API 及其推理扩展。
321 126
|
13天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
804 5
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
|
4天前
|
人工智能 安全 程序员
终于,Claude Code 封号的原因被曝光了!竟然针对中国用户,植入隐形代码?!
通俗易懂地揭秘 Claude Code 封号的手段,分享一些自己对 AI 编程困境的思考,Codex、Cursor、DeepSeek、智谱 GLM、甚至是豆包,都有所行动了
317 1
|
10天前
|
人工智能 定位技术 SEO
我学 GEO 第 15 天:终于知道AI GEO该如何做?
我是暴走的莉莉酱,边旅行边研究AI GEO的数字游民。专注普通人如何提升“AI可见度”——让AI在回答用户问题时准确识别、理解并推荐你。不讲玄学,只做可测、可调、可持续的GEO实践。
458 127

热门文章

最新文章