用AI做了个动态下发微信群二维码应用
微信群的二维码每周都要更新一次,比较麻烦。于是搞了个简单的上传/下发的 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 ,效率杠杠的!
语言不再是开发的障碍。
用AI做了个动态下发微信群二维码应用的更多相关文章
- 关于微信扫描二维码下载apk文件的细节设计
微信使用的人数越来越多,渐渐的用户形成了一种习惯,扫描二维码的时候,也会打开微信去扫描,但是微信不支持第三方的链接下载,有些厂商已经发现了这一特点,所以在使用二维码下载自家的app时,会做一个提示,引 ...
- 微信连WiFi关注公众号流程更新 解决ios微信扫描二维码不关注就能上网的问题
前几天鼓捣了一下微信连WiFi功能,设置还蛮简单的,但ytkah发现如果是ios版微信扫描微信连WiFi生成的二维码不用关注公众号就可以直接上网了,而安卓版需要关注公众号才能上网,这样就少了很多ios ...
- 微信支付之01------获取订单微信支付二维码的接口------Java实现
[ 前言:以前写过一个获取微信二维码支付的接口,发现最近公司新开的项目会经常用到,现在我又翻出代码看了一遍,觉得还是把整个代码流程记下来的好 ] 借鉴博客: 他这篇博客写得不错,挺全的:https:/ ...
- JAVA实现的微信扫描二维码支付
吐槽一下 支付项目采用springMvc+Dubbo架构实现,只对外提供接口. 话说,为什么微信支付比支付宝来的晚了那么一点,一句话,那一阵挺忙的,然后就没有时间整理,最近做完支付宝支付,顺便也把微信 ...
- (转)ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果
场景:移动支付需要对二维码的生成与部署有所了解,掌握目前主流的二维码生成技术. 1 ZXing 生成二维码 首先说下,QRCode是日本人开发的,ZXing是google开发,barcode4j也是老 ...
- 微信扫描二维码安卓弹出默认浏览器(苹果打开App Store)打开下载链接
使用微信推广的用户经常都会遇到推广链接被拦截导致无法下载app的情况,此时用户在微信中打开会提示“ 已停止访问该网页 ”.这对于使用微信营销的商家来说就很不友好且损失非常大,因为用户是不知道为什么打不 ...
- 记一次vue 普通异步请求微信二进制二维码 乱码 问题解决然后渲染
后端压力大,前端分忧. /*用微信小程序token拿二维码*/ async fetchMINIQRcode({commit,state},params){ var instance = axios.c ...
- ios app 解决微信扫二维码不能跳转问题
<script> (function(){ // Setup GA (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i ...
- 微信扫描二维码跳转手机默认浏览器打开下载app的链接是怎么实现的
此方法可以实现微信内置浏览器跳转到手机其它浏览器,现在网上其它的方法都只是一个页面,让访问者自己手动点右上角浏览器打开,而这个不同,是可以直接自动跳转的. <?php error_reporti ...
- 转:微信生成二维码java
package com.wepayweb.weixin.util.device; /*** * V型知识库 www.vxzsk.com */ import java.io.BufferedReader ...
随机推荐
- Linux命令行连接蓝牙设备
Linux命令行连接蓝牙设备 查看Bluetooth设备: hciconfig 启动一个Bluetooth设备,例如:hci0: hciconfig hci0 up 相关指令 查看特定的Bluetoo ...
- java http协议,添加header以及post传参,以及服务端获取
一.客户端请求 public static String test(){ JSONObject obj = new JSONObject(); obj.put("cusName", ...
- AWS - [01] 概述
题记部分 001 || 概述 AWS,全称Amazon Web Services,是亚马逊公司旗下的云计算服务平台,自2006年起向全球用户提供广泛而深入的云计算服务.AWD是全球最全面.应用最广 ...
- Zookeeper - [04] 分布式安装部署
一.集群规划 序号 主机名 JDK Zookeeper 1 node01 ○ ○ 2 node02 ○ ○ 3 node03 ○ ○ 二.安装部署 1.将zookeeper安装包解压到合适的目录,如/ ...
- uniapp 截屏扫码
最近开发功能遇到个需求,用户点击某个操作之后,需要截取当前屏幕内容,并扫码识别屏幕截图中的二维码,代码如下: 首先将代码抽离到外部文件中,以便复用: // 截图 export function tak ...
- Go语言fmt.Sprintf、fmt.Printf(格式化输出)
fmt.Printf fmt.Printf在程序中使用%f来格式化所需的值 看起来我们的值被四舍五入到了一个合理的数.但小数点后仍显示了6位,这对我们当前的需要来说实在是太多了. 对于这种情况,格式化 ...
- Java使用多线程处理未知任务数方案
知道任务个数,你可以定义好线程数规则,生成线程数去跑 代码说明: 虚拟线程池: 使用 Executors.newVirtualThreadPerTaskExecutor() 创建虚拟线程池,每个任务将 ...
- EBUSY: resource busy or locked, rmdir
方案一: 方案二: !!! 出现问题后,千万不要忽略npm提示你的警告... 如果以上两种方案还未解决,那么大概率是因为你的npm版本较低导致的,升级你的npm. cnpm install -g np ...
- Oracle - ORA-19809: 超出了恢复文件数的限制
场景重现 使用rman执行以下命令进行数据库备份的时候出现异常: RMAN> backup database; 出现如下错误: # 主要异常信息如下: # ... RMAN-00571: === ...
- Python的日志
Python的日志,看上去啰啰嗦嗦的.请大神写了个通俗易懂简单方便通用的日志: import logging # 配置日志记录级别和输出方式 logging.basicConfig(level=log ...