图床的高效使用:Typora + OSS + PicGo

2,063 阅读7分钟

一、为什么要用图床?

图床可以简单理解为一个存储图片的云端空间,提供图片的存储和读取服务。它有什么应用呢?举两个简单的例子。

1.假设你是一名web软件开发工程师,你正在开发的web页面包含大量的图片,并且不同用户访问的图片可能还不一样。如果这些图片都作为静态资源存储在提供web服务的服务器上,能够想象到当请求量增大时,一方面读取本地图片慢,影响用户体验;另外,这些IO操作发生在服务器,会大量占用服务器性能,进一步影响服务质量。

如果将这些图片存储在图床中,服务器只用在数据库中寻找它们的url提供给用户,显然访问速度会提高很多。另外图片url的加载是发生在客户端,也不会占用服务端性能。

2.假设你是一名文字工作者,呕心沥血在CSDN上写了很多干货,内容丰富,图文并茂。有一天CSDN倒闭了,你发现你所有干货里的图片都"图裂"了,并且你没有备份,此时你心中可能有一万只cnm奔腾而过...

如果将这些图片存储在图床中,虽然CSDN倒闭了,但是只要提供图床的服务商没有倒闭,你的图片就仍然可以找到。

通过上述的两个例子,大家对图床的作用应该有个大致了解。它本质就是一个图片服务器,专门提供图片的读写服务。

二、图床可以白嫖吗?

图床既然也是服务器,肯定是需要成本的,那么市面上有没有免费的图床可以白嫖呢?答案是肯定的,这个世界上没有什么不能白嫖(逃

当然,白嫖是要付出一定代价的。首先,数据隐私可能没有保障,你如果随意往免费图床中上传一些私密照片,可能明天就会在今日头条的热搜中看到你。其次,数据稳定性也可能没有保障,访问速度先不说慢不慢,可能今天还存在的免费图床明天就不提供服务了。(当然,只要是云端的文件,都不敢保证100%不丢失,因此即使使用大公司的图床服务,也建议对重要数据自行做好备份)

毕竟是白嫖嘛,咱不能要求这么高。

因此,如果你是存一些无关紧要的文件,不在乎它的访问速度,不在乎它是否被其他人随意读取,不在乎它是否明天就不可访问了,那白嫖对你来说就是真香!哪些图床可以白嫖,这个问题在Google或知乎上能搜出来很多答案,这里就不详细介绍了。

基本所有互联网大厂对SLA(Service-Level Agreement,服务等级协议)都有很高的要求,毕竟他们最能体会时间就是金钱这句话。大厂的系统可用性一般至少是99.9%,核心服务SLA甚至达到了99.999%,因此选择大厂图床从概率学上来说是靠谱的。

三、图床管理工具PicGo

国内像阿里、腾讯、百度和华为这些公司都有自己的云存储产品,这些XX云的使用场景之一就是做图床。这里推荐一款图床管理工具:PicGo,它融合了市面上大多数优秀的图床产品或云存储产品,只用简单配置即可搭建自己的图床。

它的设置页面如下,只用配置一些密钥就可以使用。

image-20201201001741320

比如我的阿里云OSS配置如下:

image-20201201001909420

上传图片也非常简单,选择上传区,只用将文件拖进去或点击选择文件即可,上传成功后,PicGo会将上传文件的可访问链接url复制到粘贴板上,点击粘贴即可使用。

image-20201201001945785

四、对象存储OSS

对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。

下面简单介绍如何使用阿里云OSS:

1.在OSS官网登录或注册,这里有非常详细的文档,介绍了OSS的使用和计费等信息,如果需要详细了解,可以查看文档进行了解。

image-20201201003041534

2.进入Bucket管理页面,Bucket是OSS中的存储空间的称呼,每个Bucket的名称都是独一无二的。如果把OSS服务比作一台电脑,那么Bucket就是电脑的硬盘,显然一台电脑是可以装多个硬盘的。在这个页面创建Bucket

image-20201201003451467

创建Bucket时有很多选项如下,值得注意的是:

  • Bucket名称不支持修改
  • 存储类型对应不同收费,如果仅仅用于个人的文件存储,建议存储类型选择为低频访问存储
  • 每个选项都有详细的介绍,点击右上角问号可以获取更多问题的答案

image-20201201003620410

3.创建好Bucket后,点击Bucket名称即可进入Bucket管理页面

image-20201201003938927

此时需要做一个设置:权限管理-读写权限,设置为公开读,即访问该Bucket中文件是不需要鉴权的(图床一般是用于公开访问的,因此不建议存储私人私密文件)

其中概览页面中,外网访问的Endpoint需要复制下来,等等再PicGo中需要配置。

4.Bcuket创好后,接下来就是要生成一对AccessKey/AccessKeySecret,用于PicGo的配置。

鼠标置于右上角头像处,选择访问控制

image-20201201004518650

在访问控制页面,选择人员管理-用户-创建用户

image-20201201004722334

这样你就创建了一个子用户,创建子用户的好处是,当这个用户的密钥泄露了,可以直接删除该用户,或者移除该用户的权限,避免数据泄露的风险。

创建完用户后,点击添加权限

image-20201201004926100

添加权限页面,系统权限中输入AliyunOssFullAccess 进行添加,点击确定

image-20201201005109787

然后点击刚才创建用户的登录名称,点击创建AccessKey,完成验证后,即可得到一对AK/AKS。注意!AKS只会出现这一次,所以一定要保存好。

image-20201201005243018

5.得到AK/AKS后,回到PicGo的阿里云OSS设置页面如下,KeyId即AK,KeySecret即AKS,存储空间名是刚才创建Bucket的名称,确认存储区域就是第3步提到的外网可访问的Endpoint的前缀(去掉.aliyuncs.com),后面的设置建议默认为空

image-20201201001909420

至此,就完成了OSS+PicGo的配置,实现了高质量的自建图床。

但是对于互联网从业者来说,很多时候我们都是在写博客的时候插入图片,如果没上传一张图片都要经历以下步骤:

  • 打开PicGo
  • 选择需要的图片进行上传
  • 粘贴网址到博客中,调整格式

未免太过麻烦!

因此,下面介绍一款markdown编辑器:Typora,搭配PicGo与OSS,可以实现 复制即上传 的效果,一步到位,纵享丝滑!效果如下(我只按了一个Ctrl+V,然后就是打字):

iShot2020-12-01 01.10.06

五、优秀的markdown编辑工具Typora

Typora是一款简洁且高效的markdown编辑器。它支持PicGo,结合它的图像设置,即可实现上述效果。

在Typora设置-图像中,插入图片时选择上传图片,上传服务选择PicGo.app即可

image-20201201011452553

它的原理为:Ctrl+V复制图片时,将图片的全路径提供给PicGo.app,借助它的能力进行图片上传,再将上传成功后的url填充到当前的文本中。几乎不改变用户的码字习惯。

当然,如果你并非要在编辑所有markdown文件copy图片时,都上传到OSS中,可以将上述的"上传图片"改为复制到指定路径,这个路径是本地路径,便于所有图片文件的管理(也可以认为是备份)。

image-20201201011910491

在这种配置下,复制图片时,它会自动将图片复制到本地路径,并且会提示你是否上传,如果需要上传,点击上传图片即可,这样的操作也不算太复杂,并且可以节省云端资源。

image-20201201012352475

综上,通过 Typora + OSS + PicGo 的组合,即可在几乎不降低写作效率的前提下,实现markdown的图床化。