Typora+picGo+Cloudflare R2对象存储+TinyPNG方案实现自动化上传无损压缩图片
整套方案介绍
typora用于实现markdown文本的优雅书写,同时可以支持插入图片时自动调用picGo上传图片到指定图床并且替换文本中原本的本地路径为图床提供的网络路径,这样就可以先在typora中写好文章直接复制到其他地方而不用做任何处理(例如上传到自己的博客中时不用再处理和编辑图片链接)。
picGo用于配合typora上传图片到图床,设置好了之后,就能免除自己上传图片到图床的过程,减少繁琐。
Cloudflare R2是对象存储仓库,在这里用来充当图床, cloudflare R2本身提供的free套餐规格为:
- 10GB免费(按月收费,但是可别以为是每个月都新给10GB的意思,而是存储10GB每月免费,例如你要是存20GB保存了一个月,就要再收你10GB每个月的钱,是的,每个月收钱,就和服务器类似的收费方式,这里直接理解为10GB永久免费就行了,说不定以后还能更大)
- 100W操作A类
1000W操作B类
A 类操作和 B 类操作是指一些读写操作,这里我不太理解,但这个数目应该很难超过这个数
具体来看,涉及到的A类操作可能是上传、B类操作可能是读取。
Class A operations
Class A Operations include ListBuckets
, PutBucket
, ListObjects
, PutObject
, CopyObject
, CompleteMultipartUpload
, CreateMultipartUpload
, LifecycleStorageTierTransition
, ListMultipartUploads
, UploadPart
, UploadPartCopy
, ListParts
, PutBucketEncryption
, PutBucketCors
and PutBucketLifecycleConfiguration
.
### Class B operations
Class B Operations include HeadBucket
, HeadObject
, GetObject
, UsageSummary
, GetBucketEncryption
, GetBucketLocation
, GetBucketCors
and GetBucketLifecycleConfiguration
.
### Free operations
Free operations include DeleteObject
, DeleteBucket
and AbortMultipartUpload
.
TingPNG是用于在picGo上传图片到对象存储前的一个压缩处理,处理的目的是减少图片占用的存储体积,用来尽可能将这10G存储空间利用完美,但是TingPNG每个月能免费压缩的次数只有500次,不算少也谈不上多
Pricing explained
The first 500 compressions each month are free.
First 500 compressionsFree
Next 9 500 compressions$0.009
After 10 000 compressions$0.002
一旦超过500张后就很划不来了,所以一旦到了快500个,就可以采用其他方案压缩,TingPNG优势是无损压缩而且压缩得非常小,但是实际上有损压缩也行,毕竟肉眼也看出来有什么区别,主要是要尽可能节省对象存储空间,如果超过了500个,可以考虑从采用有损压缩,以最小体积为主。
配置
Cloudflare R2这里没什么可以配置得,主要是需要开通api就可以
TingPNG这里也没什么可以配置的,只要开通然后获取key即可
Topora也没什么可以配置的,选择 文件 - 偏好设定 - 图片 - 上传服务设定配置picgo和对应路径
picGo配置
- 压缩图片采用什么方案压缩,配置tinyPNG的api,只要上传上去即可
- 配置图床设置为亚马逊s3,然后编辑密钥、应用密钥;endpoint和申请的一一对应即可,这里的亚马逊s3需要插件设置里面找到s3安装一下,从上面申请cloudflare对应api时也能观察到是兼容s3标准的