3627 字
18 分钟
网站资源的云端存储——腾讯云COS对象存储的图床应用

前言#

网站的装修总是需要各种各样的资源,像是图片、音乐、视频……相比于静态网站生成的文件,他们通常都太大了。如果产生了一点变更,就会导致更新网站的部署发布时可能多次上传这些大资源,对网站的本身的加载渲染和云端服务器的带宽负载都造成很大负担。

一般这种情况我会建议不要上传大资源。

此时,可以建立一个云端的大容量的存储空间,让网站在需要的时候进行调用,从而不必再让网站本身进行加载,把渲染的负担分摊到对存储的调用上。而对于更新来说,网站在部署发布前只需要把原本指向本地资源库的地址更改为网络中的地址就可以了。

什么是图床?#

图床是存储图片的服务器,允许用户将图片对外链接到别的地方。

我们可以将它理解为一个自动产生分享链接的网盘。图片存到这个网盘当中,就会生成一个网址,通过这个网址就可以访问和调用这张图片了。

一个例子的图片网址
https://site.lyrikp.art/layout/loading2.GIF

这是本网站的图片加载占位。

迷迷迷迷迷迭香~

免费的专业图床平台当然是存在的,不过大多数平台因为众所周知的理由往往难以在国内访问~~,成为了减速 CDN~~,而国内的图床平台又总是有会审核和版权方面的限制,还容易跑路,让存储的资源血本无归顺带网站爆炸,使用一些比较靠谱的云存储进行图床的搭建才是比较稳妥的方法。

百度搜索第一位的图床服务条款

我竟不能使用色情……不对,二次元的图片?二次元震怒!

什么是对象存储?#

对象存储简介#

对象存储是网盘。

对象存储是一种用来存储非结构化数据的云存储方式,里面每一个文件都是一个“对象”,通过唯一地址进行存取,可以通过多个 url 进行调用。

各大云服务商都会有自己的云存储(对象存储),不过名字都有所不同,例如腾讯云的 COS 对象存储,阿里云的 OOS 对象存储,百度的 BOS 对象存储,七牛云的 Kodo 对象存储,又拍云的云存储 USS 等等。

只有又拍云特立独行的英文在后面。

云存储通常会分配给用户一个相对庞大的存储空间,按照流量或者带宽进行计费。只要将图片上传上去,再开放对应的权限,就可以使用 url 来访问或者调用这些资源了。

放心,不贵。

此外,云存储通常还会提供一些特殊服务,例如常见的 CDN 分发以加快访问速度,或者对资源进行压缩处理等。即便自己的云服务器空间足够,使用对象存储服务也会有些许体验上的提升。

不是那种特殊服务,是那种特殊服务。

关于云存储的计费#

以普遍理性而论,呼吸空气也应该或许也是要收费的。

对象存储在相当低廉的使用价格之上,其计费可谓是五花八门。不过一般来说可以分为两种计费方式:流量计费和带宽计费。

简单粗暴一点,流量计费就是 3 个人下载 40MB 的文件收 120MB 的钱;带宽计费则是 n 个人共用 3Mbps 的速度下载了 2h 不管有多少文件都收 3Mbps × 2h 的钱。

虽然流量计费看起来能服务的人更多,它也通常更加昂贵。因此,博客和流量不大的网站采用流量计费的方式是比较划算的。

云存储收费的五花八门还体现在收费项上——存储容量、请求次数、访问流量、上传数据、下载数据、管理功能等等,这些都是有可能产生费用的项目。

以至于,你在查看文件时进行了点击,或者仅仅是把存储在其中无人翻看,你可能都需要为此进行支付。

我的感想是:呼吸也会收费的世界出现了。

幸运的是,大多数云服务商提供的项目都是存在免费额度的。像是腾讯云新用户会送一年的 50G 存储容量、三个月的下行流量包等等,各大平台都会有类似的优惠。有些厂商还提供打广告赠送流量的活动,一些些蚊子腿就足够网站存活了。

对的,又是你,又拍云,你总是特立独行。

云服务商的选择#

因为我使用的云服务器在腾讯云上,很多附加服务都使用了腾讯云,所以也不加抵抗地一起并入了生态。下文也将以腾讯云作为示例说明。

腾讯云 COS 快速使用#

首先当然需要在云服务平台上注册账号和进行实名认证,我相信这些操作是刻在大家 DNA 里的东西。

互联网时代的 DNA 上面刻下的东西是不是太多了一点?

腾讯云 COS 的使用步骤如下:

写成步骤怎么这么简单啊。

1 开通 COS 服务#

在 腾讯云 右上角的【控制台】的首页中搜索【对象存储】进入 COS 控制台,按照界面提示开通COS 服务即可。

你可以在 【概览】 界面的右上角部分看见 控制台文档 的说明手册入口,我有什么没有说明清楚的也可以在文档中尝试搜索。

2 创建存储桶#

在腾讯云 COS 中存在几个重要概念,当然,其他的云存储也是大同小异。

  1. 存储桶:可以理解为一个网盘容器。一个账号可以申请多个存储桶,分开计费。
  2. 对象:存放在存储桶中的数据,可以是任何格式。比如当做图床使用,存放进去的是图片资源。
  3. 地域:云存储器其本身所在的地区。不用管它,5G 时代下一般是感觉不到地域对网速的影响的,除非选到了墙的另一边……
创建存储桶操作

首先点击左侧导航栏的 1【存储桶列表】,在右侧的空白栏中点击蓝色按钮 2【创建存储桶】,会弹出如下的窗口 3。

  • 名称 - 该项目的名称,可以随当天的天气好坏填写。
    • 要注意它不可再次更改。
    • 划掉的xxxx数字相当于是是该存储桶的识别id,不需要在意它。
  • 所属区域 - 存储桶物理位置所在的区域,可以随便填写。
    • 如果同一家云服务商的话,云服务器和对象存储若处于同一个区域,在数据交互上可能会走内网,而内网交互通常是不收费的。可以用这个特性来节省几分钱。
  • 访问权限 - 在刚建立的时候可以选择 公有读私有写,权限没有配置好时,这种情况可以避免无法访问。
    • 在权限配置完成后,改成 私有读写 来时防止盗刷流量最有效的方式。
    • 你也不想和我一样一天被干出去几百块钱吧……
  • 请求域名 - 即之后调用时使用的 url 格式。
    • 之后可以将其绑定到自己的域名当中,用更简单的链接进行调用,先不管它。

点击【确定】创建。

3 存储桶操作#

创建存储桶后,存储桶列表当中就会出现对应的信息,点击名字就可以直接进入存储桶的文件列表,这个文件列表和网盘是一模一样的。

我们先上传一个迷迭香好了。

上传的文件会出现在文件列表,点击靠右边操作栏的【详情】可以进入详情界面,查看预览和一些详细信息。

资源文件详情
  • 对象名称 - 上传文件的名称,建议提前改好名字。
  • ETag - HTTP 协议中关联 Web 实体资源的电子标签,不用管它。
  • 对象地址 - 可以访问和调用使用的 url。

终于,我们获得了可以访问的网址。到这一步后就可以将 Markdown 中所有的图片本地引用换成云存储器里面的链接了。

不过这个链接实在是有一点点长,而且会暴露存储桶的 id 与地区,~~为了避免武装暴徒的袭击,~~我们可以给这个云存储器绑定一个自己的子域名,从而获得一个更为简洁的地址。

4 绑定自定义域名#

读到这里的人应该都有自己的域名吧?

子域名即为 xxx.example.com,这前面的 xxx 是可以随意填写的,顶级域名 .com 前面的那个 example 是自己的注册域名(二级域名),而再前面的 xxx 和 xxx.xxx 等等就都是域名下的三级域名、四级域名……了。

我们现在把存储桶前面那个冗长的域名更换为自己的子域名~~,以避免被武装暴徒的偷袭存储桶~~。

这个梗你还要继续玩吗?

在【存储桶列表】当中找到【域名传输与管理】-1【自定义源站域名】,点击 2【添加域名】,在 3 的地方输入想要绑定的子域名。

自定义源站域名

我们假设需要绑定的子域名称为 storage.example.com 好啦。

点击右边的保存,这个域名设定就生效了。但目前 url 链接应该还是无法使用的状态,为了让这个子域名可以被访问,我们需要为其添加 DNS 解析。

对了,这里的 CNAME 先记下来,解析要用到。

在 控制台 首页里面搜索 域名注册,【我的域名】列表当中找到自己需要配置的域名,点击解析进入 DNSPod,我们现在为其添加一个子域名的解析。

点击【添加记录】,进行填空。

  • 主机记录 - 填写子域名,这里的例子是 storage.example.com。
  • 记录类型 - 选择 CNAME,意思是跳转到记录值所在的地址。
  • 记录值 - 填写之前记下来的 CNAME。

直接确认即可。

记得也为这个域名申请一张免费的 SSL 证书,以方便开启 HTTPS 加速。搜索 SSL 证书顺着提示一路点点点就好,和自己主域名的证书申请是一样的。

等待 10min……

收到证书之后,在【对象存储】-【存储桶列表】-【域名传输与管理】-【自定义源站域名】中操作列点击绑定证书

绑定 SSL 证书
  • 证书来源 - 选择腾讯云证书,在腾讯云申请的证书是可以一键部署的~~,自由证书的也不需要看这个~~。
  • 证书选择 - 选择刚才申请的证书

看,这就是被生态的便利所绑架。

点击确定配置完成。

此时返回步骤 3 存储桶操作当中的【详情】页,就会发现在【指定域名】的选项中多出了【自定义源站域名】的选项,选择刚刚定义好的源站域名,下方的对象地址也变得简洁了起来

自定义源站域名引用

此时,一行简洁的 url 就可以调用我可爱的迷迭香啦~

说得好,我打算斥巨资(0.不知道多少个01r)再调用一次
迷迭迷迭迷迭香

后语#

至此,用云存储服务搭建图床就完成了,不知道我是否有讲解清楚呢?

也有稍微想拿出来炫耀一事,这次搭建图床的步骤也算的上是我第一篇几乎没有什么参考文章与模板而自己编写出来的教程。在之前两次配置云服务器和 CDN 加速时都没怎么搞明白的 DNS 解析也总算有了一些认识。而这份成就感给予我的动力也让我迅速码下了这一篇文档。

我似乎也看到了因为自己迫不及待雷厉风行而漏掉了什么条款没看结果月末产生一大堆费用导致负债累累只能卖身给富婆享啊不对忍受快乐球还债的未来。

是啊,你还真因为忘记配置私有读写被一天刷了几百块钱。

因为并没有经过别人的测试,步骤中难免存在疏漏。然而我的教程基本上都有写下每一个步骤的操作理由和作用,想来这些原理总不至于出错 。所以如果仍有所笔误,凭借原理也——还是在评论区给我写个 issue 吧(摊)。

感谢阅读,注意早睡。

by.看了看表然后决定不在看的L1keyneko_ฅ^._.^ฅ

网站资源的云端存储——腾讯云COS对象存储的图床应用
https://lyrikp.art/posts/知识簇-site-腾讯云对象存储cos图床应用/
作者
L1key
发布于
2021-07-26
许可协议
CC BY-NC-SA 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。