• Zyhethan

    大家好,我基于 cshaizhihao/ou-image-hosting(欧记图床,MIT 协议)做了个二开版,先感谢原作者 @cshaizhihao 的好项目 🙏 原帖

    📦 仓库:https://github.com/Ethan2258/ou-image-hosting

    🏷️ 最新版本:v1.0.0-r2.2

    为什么要二开

    原版后台虽然能填 S3 / R2 的配置,但当前存储只能是本地。R2 只是个「复制目的地」,上传、看图都还是走服务器硬盘。我想让图片完全不占 VPS 空间,就动手改了。

    主要改动

    ☁️ 三种存储都能设为当前存储

    - 本地存储、Amazon S3、Cloudflare R2 任选一个,后台点「设为当前存储」就能切换

    - 切到 R2 / S3 后,原图、缩略图、编辑后的版本、Live Photo 视频都直接写进存储桶,服务器上一个文件都不留

    - 切换前会先测一次连接,连不上就不切,不会切完才发现图全挂了

    - 老图不用搬:读图时先找本地,找不到自动去 R2 / S3 取;以后切回本地,远端的老图也照样能打开

    - 在回收站永久删除图片时,存储桶里的文件也会一起删,不会留垃圾

    🏷️ 站内提示跟着存储方式走

    - 侧边栏、概览、上传页、存储中心、系统状态显示的都是你当前用的存储,不会再出现「用着 R2 却写着本地存储运行中」

    - 系统状态检查会直接探测当前的存储桶能不能访问

    🔒 安全更新

    - 原版依赖里有 Next.js 的未授权远程代码执行等严重漏洞,这版已经升级修复(Next.js 15.5.26、Fastify 5.12.5、Sharp 0.35.4 等),依赖安全审计 0 个漏洞

    - ⚠️ 原版在公网跑着的朋友,建议尽快升级

    🤖 自动跟进上游

    - 每 6 小时自动合并原作者的更新,有新内容就自动发布新版本

    - 每个版本都会同时打包 Docker 镜像(GHCR,公开可拉取)

    安装

    全新安装:```
    curl -fsSL https://raw.githubusercontent.com/Ethan2258/ou-image-hosting/main/install.sh | bash

    ``**从原版切换过来**(数据不动,把代码来源换成这个仓库再升级就行;默认安装目录是 ~/ou-image-hosting,改过的换成你自己的路径):``
    git -C ~/ou-image-hosting remote set-url origin https://github.com/Ethan2258/ou-image-hosting.git
    ouih update

    ```升级后进后台「存储」页,填好 R2 配置 → 测试连接 → 点「设为当前存储」就完事了。原来的本地图片不用管,照样能打开;想彻底清空本地,可以先用「数据迁移」把图同步到 R2,再删本地文件。

    R2 大概多少钱

    - 每月 10 GB 存储免费,流量永久免费,超出后存储 $0.015/GB·月

    - 个人图床基本一直在免费额度内。S3 流量费比较贵,更推荐 R2

    需要注意

    - 图床自带的备份只打包服务器本地的文件,存在 R2 / S3 里的图不在备份里,需要的话请开启存储桶自己的版本控制

    - R2 我自己线上一直在用;S3 走的是同一套接口,也有自动化测试覆盖,但我没在真实 AWS 上长期跑过,欢迎大家反馈

    - R2 存储桶不需要开公开访问,图片是经过你的服务器转发出去的,桶保持私有更安全

    遇到问题欢迎在仓库提 Issue 或者直接回帖,觉得有用的话点个 ⭐ 就更好了~

    主楼
  • cshaizhihao

    支持!

    #1
  • 80hou

    火山帮,硬邦邦

    #2
  • 苦逼螺丝工

    明天放假我去试试 ^-^ ^-^

    #3
  • kathlefd

    想起了我自己vibe的图床,已经完工很久了现在还没部署起来...

    #4
  • Zyhethan

    还有什么需要的功能也可以说,我会在额度没用完的时候尽力的

    #5
  • gunmu

    强

    #6

发表回复

登录后回复