免费图床方案

1. 基于Github仓库的图床

优点:

  1. 很稳定不会跑路,用的是自己的仓库和公共托管平台
  2. 图片可以增量快速更新和跨设备管理
  3. 可以进行版本管理和查看之前的版本
  4. 有公共CDN,速度还是不错的
  5. 资源格式可以任意都行,包括cssjs

缺点:

  1. 每个仓库限制1G,超过要新建另一个仓库
  2. git管理可能偶尔会遇到网络和公钥失效问题

1.1 建立Github仓库

  1. 进入Github官网注册并登录自己的账号,到自己的个人主页,点击右上角的+,并选择New Repository创建自己的仓库。

  2. 仓库名字随意,可见性选publicReadme文件可以创建,然后点击Create Repository创建仓库。

  3. 创建好仓库后点击uploading an existing file

  4. 继续点击choose your files

  5. 选择本地文件进行上传

  6. 最后点击Commit changes完成上传✅

1.2 Jsdelivr CDN加速

直接访问Github仓库的资源是非常慢的!因此我们要用一些免费的CDN进行加速

1
2
3
4
5
# 格式 其中 user是用户名  repo是仓库名  version代表版本(tag或者分支 默认为main)  flie是文件路径 
https://cdn.jsdelivr.net/gh/user/repo@version/file

# 比如我的示例仓库
https://cdn.jsdelivr.net/gh/sucooer/image@main/webp/4.webp

1.3 Vercel 部署

此方法加载速度较快,但是需要域名自定义绑定,其优点也是可以绑定自定义域了,目前Vercel每个月限制流量100GB

  1. 进入Vercel控制面板新建项目,并通过Github继续,选择导入刚刚创建的仓库,然后直接部署即可

  2. 进入该项目控制台后,选择右上角的View Domains添加新的域名,添加一个自己域名的二级域名,然后在你对应的域名解析控制台添加对应解析,等待生效。

  3. 通过自定义域名+资源路径即可访问到对应的资源

1.4 Cloudflare 部署

此方法速度比Vercel稍慢,但是可以不需要域名,而且CloudFlare对于普通用户来说几乎不限量了

  1. 进入Cloudflare官网注册并登录自己的账号,然后进入控制台后选择左边的Pages,再创建一个新项目并通过Git进行连接,所有参数默认直接部署。

  2. 通过给出的初始域名+资源路径即可访问到的对应资源,当然也可以绑定自定义域名使用。

2. 基于Telegraph的图床

需要使用到的Github项目:Telegraph-Image

优点:

  1. 无限图片储存数量,你可以上传不限数量的图片
  2. 无需购买服务器,托管于Cloudflare的网络上,当使用量不超过Cloudflare的免费额度时,完全免费
  3. 无需购买域名,可以使用Cloudflare Pages提供的*.pages.dev的免费二级域名,同时也支持绑定自定义域名
  4. 支持图片审查API,可根据需要开启,开启后不良图片将自动屏蔽,不再加载
  5. 支持后台图片管理,可以对上传的图片进行在线预览,添加白名单,黑名单等操作

缺点:

  1. 由于图片文件实际存储于Telegraph,Telegraph限制上传的图片大小最大为5MB
  2. 由于使用Cloudflare的网络,图片的加载速度在某些地区可能得不到保证
  3. 暂不支持webp格式的图片
  4. Cloudflare Function免费版每日限制100,000个请求(即上传或是加载图片的总次数不能超过100,000次)如超过可能需要选择购买Cloudflare Function的付费套餐,如开启图片管理功能还会存在KV操作数量的限制,如超过需购买付费套餐

2.1 准备工作

  1. 一个Cloudflare账号
  2. (可选)一个在Cloudflare解析好的域名

2.2 开始部署

  1. 打开Telegraph-Image项目地址:https://github.com/cf-pages/Telegraph-Image

  2. Fork此仓库到自己账号

  3. 打开Cloudflare Dashboard,进入Pages管理页面,选择创建项目,选择连接到Git 提供程序

  4. 按照页面提示输入项目名称,选择需要连接的git仓库,点击部署站点即可完成部署

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

2.3 开启图片审查

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

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

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

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

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

3. 基于BackBlaze存储搭建免费图床

3.1 项目介绍

  1. 使用到的Github项目:blazeB2

  2. backblaze:又叫b2,是一家云存储平台,可以把自己的文件上传至云端,同时提供一个可以在外界访问的url地址。

  3. 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存储

自带的控制面板属实不好用,似乎都不能创建文件夹?反正我没找到

  1. 创建存储桶

登陆cloudflare,点击R2,如果还没绑定支付方式的,绑定信用卡或者PayPal开通一下,(ps:不会扣费验证,卡里没钱也行😁) 开通完点击创建存储桶即可。

  1. 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。

其余参数不再介绍,如果你没其他需求,可以不用管,直接点击保存即可完成。

  1. 上传文件到Cloudflare R2
  • Cloudflare R2的控制面板可以直接上传文件,但是只能上传300MB以内大小的文件。
  • 使用ALIST上传,我们在创建R2 API令牌的时候,选择编辑权限的API令牌即可上传。