项目来自GitHub
目前有 1.6k Fork 和 1.1k Star
可以看项目的 README.md 操作,也可以看本帖子操作
准备工作
- 一个 GitHub 账号
没有也行 - 一个 cloudflare 账号
- 一个域名并且已经托管到 cloudflare
没托管也行
打开 GitHub 登录,找到项目,或者点上面的链接
点击 Fork
直接 Create fork
然后到 cloudflare,点击Workers 和 Pages
点击右边区域的创建应用程序
点击 pages,然后点击连接到 git,授权
选择刚才 fork 的项目,点击开始设置
都不用改,点保存并部署
如果没有 GitHub 账号,可以下载下,选择下面的使用直接上传创建
,后面的部署都是一样的
部署完以后回到Workers 和 Pages
会发现右边多了个项目,自动分配了个.pages.dev 的域名
这个域名经过测试,不挂代理打不开
所以要自定义域名
点击项目名称,进入后点击自定义域,点击下面的设置自定义域
输入自己的域名点击继续
如果域名托管到 cloudflare,那么会自动帮你添加 dns,然后点击激活域
如果是托管到其它,则需要根据提示手动添加,添加完后点击激活域
完成后,等待域名生效就行
访问自定义的域名
上传图片试试
如果提示出错了,重新上传就行
点击右边按钮复制路径,右边红色返回按钮,返回上传界面
这时候就有人说了,如果我前面上传的图片要用,但是我没有保存路径怎么办
回到 cloudflare,点击 KV
点击创建命名空间
名称自己起,点击添加
点击项目的设置里的函数
往下拉,找到这个
变量名称设置img_url
,KV 空间填自己刚才设置的,点击保存
回到项目,点击最新部署的那次的右边的三个点,选择重新部署
打开 自定义的域名 /admin
测试时发现上传图片后需要访问一下才能在管理后台显示,不知道是我网速慢还是 bug,还是本来就是这样设定的
管理后台有了,但是没有设置密码,这样有些不安全,图片链接暴漏了,别人有可能会找到管理地址
回到项目,点到设置 > 环境变量 > 编辑变量,添加用户名BASIC_USER
和密码BASIC_PASS
保存后重新部署一下
再来到管理界面,输入刚才设置的登录账号和密码登录
官方文档也写了其它的登录方式
当然你也可以不设置这两个值,这样访问后台管理页面时将无需验证,直接跳过登录步骤,这一设计使得你可以结合 Cloudflare Access 进行使用,实现支持邮件验证码登录,Microsoft 账户登录,Github 账户登录等功能,能够与你域名上原有的登录方式所集成,无需再次记忆多一组后台的账号密码,添加 Cloudflare Access 的方式请参考官方文档,注意需要保护路径包括 /admin 以及 /api/manage/*
根据文档,还能开启图片审查,但是我没有试,感兴趣的可以自己试一下
限制
- 由于图片文件实际存储于 Telegraph,Telegraph 限制上传的图片大小最大为 5MB
- 由于使用 Cloudflare 的网络,图片的加载速度在某些地区可能得不到保证
- Cloudflare Function 免费版每日限制 100,000 个请求(即上传或是加载图片的总次数不能超过 100,000 次)如超过可能需要选择购买 Cloudflare Function 的付费套餐,如开启图片管理功能还会存在 KV 操作数量的限制,如超过需购买付费套餐
-
Cloudflare KV 每天只有 1000 次的免费写入额度,每有一张新的图片加载都会占用该写入额度,如果超过该额度,图片管理后台将无法记录新加载的图片
-
每天最多 100,000 次免费读取操作,图片每加载一次都会占用该额度(在没有缓存的情况下,如果你的域名在 Cloudflare 开启了缓存,当缓存未命中时才会占用该额度),超过黑白名单等功能可能会失效
-
每天最多 1,000 次免费删除操作,每有一条图片记录都会占用该额度,超过将无法删除图片记录
-
每天最多 1,000 次免费列出操作,每打开或刷新一次后台 /admin 都会占用该额度,超过将进行后台图片管理
-
绝大多数情况下,该免费额度都基本够用,并且可以稍微超出一点,不是已超出就立马停用,且每项额度单独计算,某项操作超出免费额度后只会停用该项操作,不影响其他的功能,即即便我的免费写入额度用完了,我的读写功能不受影响,图片能够正常加载,只是不能在图片管理后台看到新的图片了。
-
如果你的免费额度不够用,可以自行向 Cloudflare 购买 Cloudflare Workers 的付费版本,每月 $5 起步,按量收费,没有上述额度限制
-
另外针对环境变量所做的更改将在下次部署时生效,如更改了环境变量,针对某项功能进行了开启或关闭,请记得重新部署。
-