微信群的二维码每周都要更新一次,比较麻烦。于是搞了个简单的上传/下发的 Web 应用。
下面是优化前后流程,虽然看似步骤少了一步,但大大节省了时间。

主要功能

- 常见类型图片上传,支持删除,提供外链访问
- 支持上传前修改图片名,同名自动覆盖
- 秘钥登录,配置更简单
Github: https://github.com/ATQQ/image-uploader
体验地址:https://imageupload.test.sugarat.top (秘钥testpwd)
https://imageupload.test.sugarat.top/images/user1/test.png
AI做了啥
Web站点生成
使用 Bolt(https://bolt.new) 生成
Prompt 如下
实现一个Vue3 SSR的应用,通过填写一个指定的秘钥(服务器上可以配置多个秘钥) 就可以上传图片到服务器上,支持用户单选或者多选图片,上传后给用户返回图片链接, 链接构成 domain/images/秘钥对应账号名/图片名称 其中图片名称可以由用户可选指定,不指定就动态生成一个不重复的图片名 同时集成图片的自动压缩

哐哐的一顿输出,分分钟就好了。
图片压缩功能生成得有问题,代码上就先给移除了😄
项目最终就是 Vue Nuxt 技术栈。
镜像脚本生成
使用 Cursor 的 chat 功能,也是 kuakua 的就生成了!

我做了什么
- 代码逻辑的微调
- 镜像脚本的微调,构建镜像上传
- 部署服务器
上面的工作理论上AI都能搞定,复杂点的可以结合一下 MCP,但个人觉得重要的部分还是需要人工 Review 改造一下。
细微的地方修改,Prompt 效率还是没有直接改 code 来得快。
如何部署
Docker
最简单的方式使用 Docker 镜像(当然也是AI生成的)
docker run -d --name image-uploader -p 3000:3000 -v $(pwd)/data:/app/data -e NODE_ENV=production -e HOST=0.0.0.0 -e PORT=3000 -e SECRET_ACCOUNT_USER1=your-secret-key-here --restart unless-stopped sugarjl/image-uploader
通过修改SECRET_ACCOUNT_XXX的值来设置秘钥 比如
-e SECRET_ACCOUNT_HELLO=a123456
PM2
# 拉代码 git clone https://github.com/ATQQ/image-uploader.git # Gitee 地址(Github 访问受阻) git clone https://gitee.com/sugarjl/image-uploader.git cd image-uploader # 装依赖 npm install # 构建 npm run build # 启动 # 在 ecosystem.config.cjs env中添加或修改秘钥 pm2 start ecosystem.config.cjs # 或者 启动时通过环境变量指定秘钥 SECRET_ACCOUNT_USER1=test pm2 start ecosystem.config.cjs
最后
有 AI 后,能快速验证的各种想法,分分钟就生成 demo ,效率杠杠的!
语言不再是开发的障碍。