1 原理介绍#
图床,实质上就是一个专门用来存储图片的云盘。但它和百度网盘、OneDrive等私人空间不同,图床主要用于提供对外的服务——即生成图片的链接,以便公开访问与下载。
现今在网络上上传各种图片,其实也是上传到各大平台的图床服务器(如微博图床等),然后在内容中提供图片链接,用户访问时,浏览器再从链接读取图片并显示出来。
但如果将图片直接上传到平台图床,我们无法保证数据时刻有效,也难以获取有效的外链。而我们搭建私人图床的目的,就是为了方便地在自己的网站 / 平台呈现图片。
而图床的底层,是依赖对象存储来实现的,这种存储方式将不同的文件视为不同的对象(Object),所有的对象存储在一个桶(Bucket)中,简洁明了,存取方便。具体概念可以自行搜索进一步了解 ↗。现在大多数云厂商都会提供这一服务,并且存在一定的免费额度。这里以七牛云的对象存储Kodo ↗为示例展开教程。
同时我们需要一个域名与空间相绑定
2 步骤操作#
在本教程中,需要准备自己的域名是因为七牛云对象存储仅提供有效期30天的测试域名,过期后将无法访问空间。
若云厂商可以提供有效永久的域名,则可以忽略该部分以及下方绑定域名的步骤,具体以相关产品的官方文档为准。
腾讯云COS似乎是可以的,不过它的存储空间需要收费,但是很便宜。
准备工作:注册一个七牛云账号,购买一个自己的域名(域名提供商不限,几十元/年即可搞定)
如果想要图床服务器位于国内,则必须购买云主机,对域名进行备案,操作很麻烦,个人并不建议。
2.1 建立并配置存储桶#
-
注册七牛云后,打开对象存储的控制台 ↗,单击
新建空间。
有两点需要注意:
① 若选择国内的存储区域,则下一步中自己的域名必须要拥有ICP备案信息,否则将无法绑定!!!
② 访问控制需选择公开,否则网站将因为没有授权无法访问图片。
2.2 绑定自己的域名#
-
进入刚刚配置好空间的管理页面,在
域名管理→自定义源站域名栏目下绑定请求域名。单击
绑定域名,在弹出的窗口中输入自己的域名,并记下需要在CNAME记录跳转的地址。推荐形如
img.marshuni.fun的二级域名来绑定图床,这样可以在一个域名下拓展更多的功能。

-
在域名提供商的配置页面设置相关的CNAME记录,确保能够使得域名解析到云服务商提供的地址。
我使用了Cloudflare来管理域名并配置CDN加速,操作截图如下。具体操作因域名商的不同略有差异。
当配置完毕后,图床就可以使用了,可以在七牛云
空间管理→文件管理页面上传一个文件并尝试通过域名访问。
-
(可选)配置HTTPS
使用HTTPS可以有效提升传输的安全性,在
域名管理界面已绑定的域名处可以看到配置HTTPS功能。如需配置HTTPS,需要为自己的域名申请SSL证书,过程较为繁琐,此处不再赘述。
我自己则是在配置海外云主机的过程中通过
acme.sh为域名自动化申请了证书,因此直接将证书上传到这里开启了HTTPS。缺点是有效期仅90天,需要及时更新。这里给出一些参考博客。HTTPS之acme.sh申请证书 ↗Cloudflare似乎也能够申请用于源服务器的证书,但是仅对Cloudflare CDN与源服务器之间的加密有效。具有一定实用性,感兴趣的朋友可以自行去探索一番。
在此感叹一下,Cloudflare就是永远滴神!!即使是免费套餐也提供了相当丰富且实用的服务,为云上管理提供了巨大的便利!!
2.3 配置相关工具#
当然,每次需要上传图片时都打开七牛云手动上传并复制链接,未免太过麻烦。因此我们隆重介绍一个相关的实用工具——PicGo: 一个用于快速上传图片并获取图片 URL 链接的工具
官方链接:PicGo - Github ↗
下载链接:PicGo-Setup-2.3.1-x64.exe ↗(腾讯云COS加速)
配置图床#
在下载安装完成后,打开应用,切换到图床设置→七牛云

-
设定AccessKey与SecretKey:
从七牛云管理页面右上角进入
密钥管理
打开即可从此处找到两个Key,复制粘贴到对应栏位即可。一个账号可以有两对密钥,任选一对即可。

-
设定Bucket, 访问网址:填写之前的存储空间名以及绑定的网址即可。注意:网址必须加上http://(https://)前缀
-
设置存储区域名:可在官方文档 ↗中查看,即
Region ID。我使用的存储空间位于亚太-新加坡,故区域名为as0.
更多详细信息可参见Picgo的官方文档。
访问地址:https://picgo.github.io/PicGo-Doc/zh/guide/#picgo-is-here ↗