博主头像
寰宇撷光

学习心得&经验分享

【经验分享】部署属于自己的图床

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

3 更多参考链接

【经验分享】部署属于自己的图床
https://www.marshuni.fun/archives/picture_bed.html
本文作者 marshuni
发布时间 2023-01-07
许可协议 CC BY-NC-SA 4.0
发表新评论