免费图床方案

免费图床方案
若雨1. 基于Github仓库的图床
优点:
- 很稳定不会跑路,用的是自己的仓库和公共托管平台
- 图片可以增量快速更新和跨设备管理
- 可以进行版本管理和查看之前的版本
- 有公共CDN,速度还是不错的
- 资源格式可以任意都行,包括
css
、js
等缺点:
- 每个仓库限制1G,超过要新建另一个仓库
- git管理可能偶尔会遇到网络和公钥失效问题
1.1 建立Github仓库
进入Github官网注册并登录自己的账号,到自己的个人主页,点击右上角的
+
,并选择New Repository
创建自己的仓库。仓库名字随意,可见性选
public
,Readme
文件可以创建,然后点击Create Repository
创建仓库。选择本地文件进行上传
最后点击
Commit changes
完成上传✅
1.2 Jsdelivr CDN加速
直接访问Github仓库的资源是非常慢的!因此我们要用一些免费的CDN进行加速
1 | # 格式 其中 user是用户名 repo是仓库名 version代表版本(tag或者分支 默认为main) flie是文件路径 |
1.3 Vercel 部署
此方法加载速度较快,但是需要域名自定义绑定,其优点也是可以绑定自定义域了,目前Vercel每个月限制流量100GB
进入Vercel控制面板新建项目,并
通过Github继续
,选择导入刚刚创建的仓库,然后直接部署即可进入该项目控制台后,选择右上角的
View Domains
添加新的域名,添加一个自己域名的二级域名,然后在你对应的域名解析控制台添加对应解析,等待生效。通过
自定义域名+资源路径
即可访问到对应的资源
1.4 Cloudflare 部署
此方法速度比Vercel稍慢,但是可以不需要域名,而且CloudFlare对于普通用户来说几乎不限量了
进入Cloudflare官网注册并登录自己的账号,然后进入控制台后选择左边的
Pages
,再创建一个新项目并通过Git进行连接,所有参数默认直接部署。通过给出的
初始域名+资源路径
即可访问到的对应资源,当然也可以绑定自定义域名使用。
2. 基于Telegraph的图床
需要使用到的Github项目:Telegraph-Image
优点:
- 无限图片储存数量,你可以上传不限数量的图片
- 无需购买服务器,托管于Cloudflare的网络上,当使用量不超过Cloudflare的免费额度时,完全免费
- 无需购买域名,可以使用Cloudflare Pages提供的*.pages.dev的免费二级域名,同时也支持绑定自定义域名
- 支持图片审查API,可根据需要开启,开启后不良图片将自动屏蔽,不再加载
- 支持后台图片管理,可以对上传的图片进行在线预览,添加白名单,黑名单等操作
缺点:
- 由于图片文件实际存储于Telegraph,Telegraph限制上传的图片大小最大为5MB
- 由于使用Cloudflare的网络,图片的加载速度在某些地区可能得不到保证
- 暂不支持
webp
格式的图片- Cloudflare Function免费版每日限制100,000个请求(即上传或是加载图片的总次数不能超过100,000次)如超过可能需要选择购买Cloudflare Function的付费套餐,如开启图片管理功能还会存在KV操作数量的限制,如超过需购买付费套餐
2.1 准备工作
- 一个
Cloudflare
账号 - (可选)一个在
Cloudflare
解析好的域名
2.2 开始部署
打开
Telegraph-Image
项目地址:https://github.com/cf-pages/Telegraph-Image按照页面提示输入项目名称,选择需要连接的git仓库,点击部署站点即可完成部署
在pages的自定义域里面,绑定cloudflare中存在的域名,在cloudflare托管的域名,自动会修改dns记录
2.3 开启图片审查
请前往https://moderatecontent.com/ 注册并获得一个免费的用于审查图像内容的API key
打开Cloudflare Pages的管理页面,依次点击设置,环境变量,添加环境变量
添加一个变量名称为ModerateContentApiKey,值为你刚刚第一步获得的API key,点击保存即可
注意:由于所做的更改将在下次部署时生效,你或许还需要进入部署页面,重新部署一下该本项目
开启图片审查后,因为审查需要时间,首次的图片加载将会变得缓慢,之后的图片加载由于存在缓存,并不会受到影响
3. 基于BackBlaze存储搭建免费图床
3.1 项目介绍
使用到的Github项目:blazeB2
backblaze:又叫b2,是一家云存储平台,可以把自己的文件上传至云端,同时提供一个可以在外界访问的url地址。
cloudflare:CDN,缓存网页,我们的目的是缓存backblaze的图片,并且做CDN加速,使用户看图的流量不走 backblaze,走 cloudflare。backblaze 在 cloudflare 的带宽联盟中,二者之间的流量免费,在这里使用backblaze,使用户流量全部走带宽联盟。
3.2 功能支持
- 支持 拖拽、复制粘贴、选择文件 等方式进行选择图片
- 支持 一键复制 图片外链支持多种格式(MarkDown、HTML、自定义)
- 支持 一键部署(Vercel,ServerLess,Heroku,Docker)查看部署方法
- 支持 图片名称 唯一性 后端生成 uuid 字符串,暂不支持自定义名称
- 支持 显示仓库下所有文件夹名称 支持自定义默认搜索仓库名
- 支持 图片压缩 可自定义压缩等级 默认关闭,开启默认(0.8)
- 支持 快捷键(图床管理界面,全选,删除,复制) Shift点击批量选择
- 支持 批量上传图片、批量删除图片 和 批量复制图片外链
- 支持 图床管理(对仓库图片的 增删改查 放大预览)
- 支持 自定义上传文件夹 可自动生成文件夹
- 支持 自定义 检索 某个指定文件夹或图片
- 支持 图片水印 单张处理上传,文字 / 图片
- 支持 暗夜模式 (自由切换 / 自动切换)
- 支持 PWA
3.3 项目部署
详见项目文档: https://blazeb2.js.org/guide/summary.html
4. 缤纷云 S4 对象存储
4.1 介绍 缤纷云 S4 对象存储
缤纷云 S4(Smart Simple Storage Service)是一款兼容 S3 协议(S3 Compatible Storage)的对象存储服务。它在 S3 的基础上添加了一系列内置的 内容处理及优化功能。故相比 S3 多了 Smart 特性。
同时,缤纷云 S4 采用了创新的低成本架构,使得中国大陆用户首次能以不到一半的存储成本使用热点云存储(OSS标准、COS标准 等)。
4.2 计费
缤纷云拥有一定的免费额度,个人使用搭建图床够用了
前置条件 - 实名账户:
- 前 50 GiB 存储
- 每月前 10*3 GB HTTP/HTTPS 流量(每日每项限 5 GB)
- S4 出口流量 10GB/月
- 内置 CDN 回源 S4 流量 10GB/月
- 内置 CDN 出口流量 10GB/月
- 每月前 10*3 万次 请求(每日每项限 1 万次)
- S4 请求数 10万次/月
- 内置 CDN 回源 S4 请求数 10万次/月
- 内置 CDN 请求数 10万次/月
5. Cloudflare R2对象存储
5.1 Cloudflare R2 介绍
R2 提供兼容 S3 的分布式对象存储,让您能自由创建所期望的多云架构。
- 全球分布式对象存储
- 与 Cloudflare Workers 集成以提供动态功能
- 利用我们兼容 S3 的 API 来避免供应商锁定
5.2 定价
免费 | 付费价格 | |
---|---|---|
存储 | 10Gb/月 | 0.015美元/Gb 存储 |
A类操作:改变状态 | 100万次/每月 | 4.50美元/百万次 |
B类操作:读取现有状态 | 1000万次/月 | 0.36美元/月 |
5.3 Alist管理R2存储
自带的控制面板属实不好用,似乎都不能创建文件夹?反正我没找到
- 创建存储桶
登陆cloudflare,点击R2,如果还没绑定支付方式的,绑定信用卡或者PayPal开通一下,(ps:不会扣费验证,卡里没钱也行😁) 开通完点击创建存储桶即可。
- ALIST创建S3存储
打开ALIST后台,点账号-添加,类型选S3。
虚拟路径:随便你设置什么路径。
Bucket:存储桶名称,就是你创建存储桶填的名字。
Endpoint:存储桶链接,https://<帐户 ID>.r2.cloudflarestorage.com
账户ID在Cloudflare R2的界面右边就有,例如:https://024b6e786111ca9d8fdf7ef37ee88888.r2.cloudflarestorage.com
Region:填auto即可。
Access Key:R2 API令牌,在Cloudflare R2界面右侧点击 管理 R2 API 令牌 创建。建议只创建读取那个,创建完后访问密钥 ID就是Access Key,密钥只显示一次,如果忘记了可以重置或者删除重建。
Access Secret:R2 API令牌,跟上面一样,机密访问密钥就是Access Secret。
其余参数不再介绍,如果你没其他需求,可以不用管,直接点击保存即可完成。
- 上传文件到Cloudflare R2
- Cloudflare R2的控制面板可以直接上传文件,但是只能上传300MB以内大小的文件。
- 使用ALIST上传,我们在创建R2 API令牌的时候,选择
编辑权限
的API令牌即可上传。