V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
airka

分享一个无需服务器开源自建图床程序,支持一键部署到 Cloudflare Pages 平台,支持图片管理,兼容 picgo

  •  2
     
  •   airka · Jan 19, 2023 · 4793 views
    This topic created in 1196 days ago, the information mentioned may be changed or developed.

    Telegraph-Image

    开源免费图片托管解决方案,Flickr/imgur 替代品。基于无服务器 Serverless 技术,使用 Cloudflare Pages 和 Telegraph 。

    项目 Github 地址:https://github.com/cf-pages/Telegraph-Image

    Demo: https://im.gurl.eu.org

    如何部署

    提前准备

    你唯一需要提前准备的就是一个免费的 Cloudflare 账户

    手把手教程

    简单 3 步,即可部署本项目,拥有自己的图床

    1.下载或 Fork 本仓库 (注意:目前请使用 fork ,在使用下载#14部署存在问题)

    2.打开 Cloudflare Dashboard ,进入 Pages 管理页面,选择创建项目,如果在第一步中选择的是 fork 本仓库,则选择连接到 Git 提供程序,如果第一步中选择的是下载本仓库则选择直接上传 1

    最后一步,按照页面提示输入项目名称,选择需要连接的 git 仓库(第一步选择的是 fork )或是上传刚刚下载的仓库文件(第一步选择的是下载本仓库),点击部署站点即可完成部署

    特性

    1.无限图片储存数量,你可以上传不限数量的图片

    2.无需购买服务器,托管于 Cloudflare 的网络上,当使用量不超过 Cloudflare 的免费额度时,完全免费

    3.无需购买域名,可以使用 Cloudflare Pages 提供的*.pages.dev的免费二级域名,同时也支持绑定自定义域名

    4.支持图片审查 API ,可根据需要开启,开启后不良图片将自动屏蔽,不再加载

    5.支持后台图片管理,可以对上传的图片进行在线预览,添加白名单,黑名单等操作

    绑定自定义域名

    在 pages 的自定义域里面,绑定 cloudflare 中存在的域名,在 cloudflare 托管的域名,自动会修改 dns 记录 2

    开启图片审查

    1.请前往 https://moderatecontent.com/ 注册并获得一个免费的用于审查图像内容的 API key

    2.打开 Cloudflare Pages 的管理页面,依次点击设置环境变量添加环境变量

    3.添加一个变量名称ModerateContentApiKey为你刚刚第一步获得的API key,点击保存即可

    注意:由于所做的更改将在下次部署时生效,你或许还需要进入部署页面,重新部署一下该本项目

    开启图片审查后,因为审查需要时间,首次的图片加载将会变得缓慢,之后的图片加载由于存在缓存,并不会受到影响 3

    限制

    1.由于图片文件实际存储于 Telegraph ,Telegraph 限制上传的图片大小最大为 5MB

    2.由于使用 Cloudflare 的网络,图片的加载速度在某些地区可能得不到保证

    3.Cloudflare Function 免费版每日限制 100,000 个请求(即上传或是加载图片的总次数不能超过 100,000 次)如超过可能需要选择购买 Cloudflare Function 的付费套餐,如开启图片管理功能还会存在 KV 操作数量的限制,如超过需购买付费套餐

    开启图片管理功能

    图片管理功能,默认是关闭的,如需开启请部署完成后前往后台依次点击设置->函数->KV 命名空间绑定->编辑绑定->变量名称填写:img_url KV 命名空间 选择你提前创建好的 KV 储存空间,开启后访问 http(s)://你的域名 /admin 即可打开后台管理页面

    变量名称 KV 命名空间

    img_url 选择提前创建好的 KV 储存空间

    开启图片管理登录验证功能

    后台管理页面的登录验证功能,默认也是关闭的,如需开启请部署完成后前往后台依次点击设置->环境变量->为生产环境定义变量->编辑变量 添加如下表格所示的变量即可开启登录验证

    变量名称 值 BASIC_USER = <后台管理页面登录用户名称> BASIC_PASS = <后台管理页面登录用户密码>

    当然你也可以不设置这两个值,这样访问后台管理页面时将无需验证,直接跳过登录步骤,这一设计使得你可以结合 Cloudflare Access 进行使用,实现支持邮件验证码登录,Microsoft 账户登录,Github 账户登录等功能,能够与你域名上原有的登录方式所集成,无需再次记忆多一组后台的账号密码,添加 Cloudflare Access 的方式请参考官方文档,注意需要保护路径包括 /admin 以及 /api/manage/*

    一些注意事项:

    Cloudflare KV 每天只有 1000 次的免费写入额度,每有一张新的图片加载都会占用该写入额度,如果超过该额度,图片管理后台将无法记录新加载的图片

    每天最多 100,000 次免费读取操作,图片每加载一次都会占用该额度(在没有缓存的情况下,如果你的域名在 Cloudflare 开启了缓存,当缓存未命中时才会占用该额度),超过黑白名单等功能可能会失效

    每天最多 1,000 次免费删除操作,每有一条图片记录都会占用该额度,超过将无法删除图片记录

    每天最多 1,000 次免费列出操作,每打开或刷新一次后台 /admin 都会占用该额度,超过将进行后台图片管理

    绝大多数情况下,该免费额度都基本够用,并且可以稍微超出一点,不是已超出就立马停用,且每项额度单独计算,某项操作超出免费额度后只会停用该项操作,不影响其他的功能,即即便我的免费写入额度用完了,我的读写功能不受影响,图片能够正常加载,只是不能在图片管理后台看到新的图片了。

    如果你的免费额度不够用,可以自行向 Cloudflare 购买 Cloudflare Workers 的付费版本,每月$5 起步,按量收费,没有上述额度限制

    另外针对环境变量所做的更改将在下次部署时生效,如更改了环境变量,针对某项功能进行了开启或关闭,请记得重新部署。

    17 replies    2023-01-21 05:42:58 +08:00
    xiaoao
        1
    xiaoao  
       Jan 19, 2023
    很好 我用的 b2+cl 缓存
    KMpAn8Obw1QhPoEP
        2
    KMpAn8Obw1QhPoEP  
       Jan 19, 2023 via Android
    嗯 readme 里有张示例图片不错 我朋友说想要原图🤤
    Kevinyy
        3
    Kevinyy  
       Jan 19, 2023
    同上
    airka
        4
    airka  
    OP
       Jan 19, 2023
    @enchilada2020 你说的是这张吗? https://im.gurl.eu.org/file/022b6e054100d7ffecaef.jpg
    其实 readme 里面展示了图片的文件名,稍微拼接一下 url 就能获得图片了
    airka
        5
    airka  
    OP
       Jan 19, 2023
    @Kevinyy 其实 readme 里面展示了图片的文件名,稍微拼接一下 url 就能获得图片了
    vazo
        6
    vazo  
       Jan 19, 2023
    Demo 域名被墙?
    forelegance
        7
    forelegance  
       Jan 19, 2023
    一直用 linx-server ,感觉够简单,够轻量。
    QUC062IzY3M1Y6dg
        8
    QUC062IzY3M1Y6dg  
       Jan 19, 2023
    请教,我这里开启了 KV 命名空间绑定,打开 /admin 还是报错,是我命名出错了吗?

    https://tg-images.pages.dev/file/f23110335157616009e02.png
    https://tg-images.pages.dev/file/1ed78e43ea12dc49b690c.png
    estk
        9
    estk  
       Jan 19, 2023 via iPhone
    https://im.gurl.eu.org/file/9ab20debcf9ac53fe826b.jpg
    照道理做文件床也行吧,不一定图片
    itechify
        10
    itechify  
    PRO
       Jan 19, 2023 via Android
    哇,下次试试
    Droog
        11
    Droog  
       Jan 19, 2023
    非常好用,谢谢!
    chancat
        12
    chancat  
       Jan 19, 2023 via Android
    这都好久的东西了,玩烂算球
    zuoshoufantexi
        13
    zuoshoufantexi  
       Jan 20, 2023 via Android
    留着备用。
    airka
        14
    airka  
    OP
       Jan 20, 2023
    @shuxhan 修改环境变量或是添加绑定后请尝试重新部署一下
    airka
        15
    airka  
    OP
       Jan 20, 2023
    @estk 是的但是 telegraph 限制文件大小 5M ,5M 做文件储存的话就太小了
    airka
        16
    airka  
    OP
       Jan 21, 2023
    @vazo 是的,部分地区,部分运营商无法正常访问
    airka
        17
    airka  
    OP
       Jan 21, 2023
    @forelegance 后面会推出支持部署到自己的 linux 服务器上的版本,无需依赖 cloudflare ,敬请期待
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3204 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 12:57 · PVG 20:57 · LAX 05:57 · JFK 08:57
    ♥ Do have faith in what you're doing.