快速上传图片到阿里云,写博客效率提升,支持 docker 部署,开源给大家用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
zhangfeiwudi
0.01D
V2EX    分享创造

快速上传图片到阿里云,写博客效率提升,支持 docker 部署,开源给大家用

  •  
  •   zhangfeiwudi 1 月 20 日 1148 次点击

    图片云上传 IMG-CLOUD-UPDATE

    项目介绍

    在写博客的场景下,不可避免上传一些图片。作为博客文章插图。

    我都是直接上传到我阿里云的 oss 里面。但是阿里云自带的工具太重了,每次打开等半天,而且复制 url 还得点好几下。

    我花了一周做了一个快速上传图片到阿里云 OSS ,并且直接生成 makedown 格式的图片链接,方便你写博客或文章的时候快速上传并插入。

    下面是正经的介绍:


    图片云上传是一款前端使用 vue3+element-plus ,后端使用 go+gin+bbolt 的图片上传项目。使用该项目可以让你更快的把本地图片传到远程图片云仓库。当前版本支持阿里云 oss 。不用担心你的 access_key_id 会泄露,本系统保存到本地二进制数据库,不做任何远程传输。

    本项目也适合初学者学习参考,内有大量的注释,对于学习 golang 和 VUE 都有比较大的帮助。

    已支持:

    • 阿里云 oss
    • 自定义路径
    • 自定义/自动修改名称
    • 自动添加 markdown 格式
    • 支持设置密码/默认安装页面

    未支持

    • 显示多层文件列表
    • aws/腾讯云/七牛等更多远程仓库

    截图

    https://imgur.com/1kA2Bav

    https://imgur.com/gIbloDS

    依赖组件:

    1. 前端:

    1. vue3
    2. element-plus
    3. pinia
    4. axios
    5. vue-router

    2. 后端:

    1. go
    2. gin
    3. bbolt

    安装

    1. docker 编译安装

    直接执行 make 即可,会先编译 web 端,再编译 server 端。再打包容器镜像。最后 docker 运行镜像。

    参考项目:

    第 1 条附言    1 月 21 日
    11 条回复    2026-01-21 20:35:37 +08:00
    Hansah
        1
    Hansah  
       1 月 20 日
    阿里云?不怕被刷吗?一个月正常开销要多少
    zhangfeiwudi
        2
    zhangfeiwudi  
    OP
       1 月 20 日
    @Hansah 自己博客 没多少流量,而且设置了每天限流
    zhangfeiwudi
        3
    zhangfeiwudi  
    OP
       1 月 20 日
    懵了,忘记贴 GitHub 地址了: https://github.com/gwyy
    zhangfeiwudi
        4
    zhangfeiwudi  
    OP
       1 月 20 日
    完了 贴地址还贴错了 : https://github.com/gwyy/img-cloud-update
    dimlau
        5
    dimlau  
       1 月 21 日
    我一直不太理解(拿 Hugo 举例吧)为什么不直接把图片和 .md 文件放在同一个目录里面,管理起来也方便,调用也方便直接写相对路径就可以,而且博客文章也用不了太多图片吧。我自己就一直是这样操作,没发现有什么不妥。
    goodryb
        6
    goodryb  
       1 月 21 日
    @dimlau 放本地是访问的时候是走服务器自己的流量,小规模问题不大,大规模的带宽估计扛不住
    zhangfeiwudi
        7
    zhangfeiwudi  
    OP
       1 月 21 日
    @dimlau 一般这种博客都是一个 git 仓库,如果一直往里面传图片,git 仓库会非常大
    dimlau
        8
    dimlau  
       1 月 21 日
    @goodryb #6
    @zhangfeiwudi #7

    我的博客从 2004 年至今,从早年的租空间,到后来 VPS ,再到云,实话实说,这点流量完全不是问题吧?
    虽然我不太关注数据,所以没有细致的流量统计。但是 rss 订阅有几千,cloudflare 的粗略统计访问量也不算太低,总之,我是说,大家可能对「防患于未然」想得太超前了。

    Git 仓库的话,我这边是 700 多篇文章,基本有 2/3 文章有配图,通过 GitHub Actions 重建页面并且用 rsync 同步到自己的服务器去,总耗时 1 分 40 秒,的确挺慢的,但是应该也在接受范围内……
    justNoBody
        9
    justNoBody  
       1 月 21 日
    zhangfeiwudi
        10
    zhangfeiwudi  
    OP
       1 月 21 日
    @justNoBody 哇 我都不知道有这个东西,确实比我做的要完善,不过如果懒得安装想部署一次到处用的 还是可以推荐我做的 嘿嘿
    zhangfeiwudi
        11
    zhangfeiwudi  
    OP
       1 月 21 日
    @dimlau #8 是的 我也是用的 hugo 流量我体感也无所谓,主要是仓库越来越大,我有强迫症,如果我直接放到 git 仓库里的话,有时候一张图片 1M 我还得给他压缩下,才能说服我自己放进去,现在我的博客写了一年加起来占用空间还不到 5M
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1681 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 00:30 PVG 08:30 LAX 16:30 JFK 19:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86