技术分享
关于图床
00 分钟
2024-10-2
2024-12-3
type
status
date
slug
summary
tags
category
icon
password
 

公有图床

我们必须得承认, 图床是一件很麻烦的事情, 尤其是在使用多了之后 …
我最早用的图床是杜老师创建的 去不图床 , 很多建站的小伙伴门都在使用此它, 这个图床是相当不错的, 实惠速度快, 杜老师的理想主义很值得敬佩. 然而总有一些很奇怪的人非得攻击公共资源, 所以图床偶尔会短暂停服, 但杜老师一直在倾心维护, 所以整体上去不图床是很优秀的. 后来陆续使用了 sm.ms聚合图床 , 我对 sm.ms 的速度并不满意, 而免费的聚合图床挺不错的, 就是偶尔会出现卡顿现象, 而普通用户每次最多只能上传五张照片, 照片多了还要分批上传.
公有的图床平台, 必然存在以下问题 : 容易受到攻击, 稳定性方面有威胁, 如果要同时保障速度和安全, 那么图床投入要很大, 成本就高了. 另外, 共有图床生成的链接通常无法自定义, 这也是一个很大的问题, 后面再详细说.
 

自建图床

公有图床的问题始终存在, 为了避免, 我们可以尝试自建图床, 目前流行的方案有如下几种 :
👏
  • 纯白嫖 :
    • 基于 GitHub 仓库存储图片, 用 jsd 的 CDN 加速
    • 基于 telegram 的 telegraph 平台来存储图片, 用 Cloudflare 提供的服务来加速
  • 对象存储 : 不同的厂商有不同的英文缩写, 阿里云的叫 OSS,华为云叫 OBS,腾讯云叫 COS,七牛叫 Kodo… 五花八门,都是对象存储技术. 购买对象存储资源, 创建 bucket 来存储图片, 可以绑定自己的已备案域名, 也可以购买 CDN 服务来加速. 结合 PicGo 或 Piclist 上传图片很方便.
  • 服务器 : 在云服务器上部署兰空图床、easyimage、minio、chevereto 等图床程序, 可以自用也能开发给他人使用. 图片存储在服务器上, 速度和稳定性取决于服务器性能
下面来分析以下三种方案的优缺点 :
对于白嫖型: GitHub 仓库和 telegraph 本身就不是要作为图床而设计的, 这属实是网友们摸索出来的神奇思路. 但我不喜欢这种方案 : 在未科学上网的情况下, 即使有 CDN 加持, 图片的稳定性还是很一般甚至无法加载, 而长期稳定性也很难说.
对象存储: 其实配置起来也挺麻烦, 想自定义域名就必须备案, 要考虑合适的存储套餐、外网下行流量套餐、CDN 套餐, 要考虑安全性防止他人盗刷 … 时间成本和付费都很高. 但优点在于极佳的稳定性和速度, 毕竟依赖大厂资源, 如果各方面都配置好了, 那使用体验是相当好的.
对于服务器自建图床: 我折腾了兰空、minio 和 easyimage , 虽然说 “数据在手里” 感觉很安心, 但面临的安全、稳定性和速度问题都比对象存储方案要麻烦很多, 以及对服务器性能也有要求, 我就懒得继续折腾了…
 
所以整体而言, 我使用腾讯云的对象存储, 目前的收费是 : 每月 10G 存储包 0.85 元 + 每月 10G 外网下行流量包 3.6 元 + HTTPS CDN 请求 ( 每月免费额度 300G, 超出部分额外收费 ) 具体收费策略请看 : COS 存储CDN . 其实这个花费相较于公有图床算是相当贵的, 特别还是在我只有两百张图像的情况下, 如果图片更多访问量更大, 月费也会水涨船高… 不过, 七牛云的对象存储还是很良心的, 每个月免费赠送 10G 的存储, 10G CDN 回源流量和一百万次请求, 很多的博友们也在使用七牛云口碑很好.
 
 

自定义 URL

以上从稳定性、速度和成本的角度把各种图床分析了一遍, 但其实我很想聊另外一个特征, 就是图像 URL 的自定义问题, 我甚至认为这是图床最重要的基本属性之一.
比如你把所有博客图片存储在了公有图床 abcde.com 上面, 此图床接收图像 a.jpg 给你吐出来一个 URL 为 : abcde.com/aristoph/f8fK2ck776Ratu4p2.jpg . 当有一天这个图床服务质量变差了或者要倒了, 而你本地甚至就没要保留原图像或者图像乱七八糟的分布在各个目录里, 那么你就会陷入极大的麻烦. 或者运气好一点 : 图床倒闭之前把你的所有图像打包退还给你了, 不过整理这些图像上传到新图床以及修改每篇帖子里的图像链接, 又是一件极其枯燥又痛苦的事情 …
也可以再设想一下, 你把所有博客图片存储在 COS 中, 你给 COS 存储桶绑定了自己的域名 img.mydomian.com , 上传一张 a.jpg 后返回的 URL 是 : img.mydomian.com/a.jpg , 由于 COS 依赖的是大厂 ( 腾讯阿里等 ) 的计算资源, 它的稳定性是极高的, 所以不用怎么担心哪一天图床崩了的问题. 即使它真的崩了, 如果你运气好在本地个人电脑上存储了完整的博客图片, 那你还可以购买另一家大厂的对象存储, 依然绑定域名 img.mydomian.com , 上传 a.jpg 后你会发现, 这张图像对应的 URL 完全没变. 只要这张图像没被删掉, 它在互联网上是可以 “永生” 的, 即使图像实际上搬家了, 但通过之前存在的 URL 也照样可以访问到, 不需做任何博文上的修改. 再退一步讲, 你的域名 G 了怎么办 ? 比如换新了 newdomian.com 那你也只需在每篇博文中 Ctrl H 替换掉旧域名就可以了. 当然这并不是说所有对象存储机制的图像链接都是 img.mydomian.com/a.jpg 这种格式的 ( 腾讯云是可以的 ), 甚至也可以自定义 URL 的格式, 这完全自由. 因为这种 URL 格式上的自由, 我更喜欢自建的图床, 而公有图床的 URL 通常包含散列值字符串和日期等信息, 甚至不会给图片原本的名称, 这不利于图床变更.
 
notion image
 
上一篇
聊聊双拼打字的三年
下一篇
一束

留言区 ( 需等待加载几秒 >_< )
Loading...