本文编写于 215 天前,最后修改于 214 天前,其中某些信息可能已经过时。

Typora | PicGo | 腾讯COS存储桶

Typora

Typora 是一款支持实时预览的 Markdown 文本编辑器。极简的设计与丰富的功能造就了其绝妙的用户体验,使其成为PC下Markdown写作专门工具的极佳选择。

本文不过多介绍Typora与Markdown。

如果你不了解Typora与Markdown是什么,推荐阅读:

作为一个使用Typora写作Markdown两年多的用户,突然发现在去年的时候Typora已经更新了自动上传图片的功能,此前对于使用markdown写作并在个人博客等网络平台发布的话必须手动一张张上传本地图片,而通过Typora内置的自动上传显然可以带来极大的便利。

于是有了这篇配置Markdown书写时图片流的探索。

PicGo

PicGO 是一款图片快速上传的桌面工具,可以快速将本地图片上传的自定义设置好的图床上并获得指定格式的图片网络链接。

推荐阅读:PicGo:基于 Electron 的图片上传工具

要让Typora通过本地的Sever访问到PicGo来上传图片,首先必须打开PicGo的Sever开关

接下来配置好使用的默认图床,这里使用自己的腾讯云COS存储桶作为个人图床

下面介绍如何在腾讯云申请一个COS并获得所需的API密钥

腾讯云COS存储桶

对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据。腾讯云 COS 使所有用户都能使用具备高扩展性、低成本、可靠和安全的数据存储服务。

简单来说,就是一个分布式分发的支持编程访问的企业级网盘服务,访问快,安全性高。

对于个人使用的小流量来说价格还算实惠,用来做个人图床的存储绰绰有余。

登录进入 对象存储 控制台后,创建一个公有读私有写的公有存储桶,存储空间名称自定义名称-APPID组成,V5下存储区域ap-地区,创建后可以在控制台看到

接着进入 用户管理 控制台,创建一个可编程访问对象存储服务权限的子用户,关键配置如下

然后查看子用户详情的API密钥标签即可获得这个子用户的SecretId与SecretKey,而APPID是和主用户共享的,在主用户的 API管理 中可以看到主用户的 APPID (实际上前文创建存储桶时已经获得)。

至此,我们获得了一个COS存储空间,以及通过API接口访问的密钥。

另外,可以安装腾讯云提供了COSBrowser来图形化管理或使用这个储存桶空间

结束了?

获得了密钥后填入PicGo的图床设置并设为默认图床即可,

在Typora的上传设定中选择PicGoAPP的上传服务并设置好PicGo的安装路径,验证上传选项,这时已经可以使用Typora上传图片了。

但可以看到,上传得到的图链还是COS桶的实际链接,但已经可以使用

番外:配置腾讯云COS图床域名

假设你已有一个域名,接下来我将介绍两种通过个人域名使用图床的方式

域名的CNAME记录方式

首先在域名解析中添加一个CNAME类型记录,记录值即为所使用的腾讯云COS桶的访问域名

并在COS桶的源站域名中添加此域名

最后在PicGo的自定义域名中填入使用的个人域名就可以啦

值得注意的是由于CNAME记录是设置别名,实际时cos桶域名使用的SSL证书与访问域名不同会导致证书错误,使用此方法仅可通过http来访问图床,因此如果有服务器的话更推荐使用一下反代域名的方式来实现。

设置Nginx反代

首先在域名解析中添加一个A类型记录,记录值即你的服务器IP,如下

如果之前设置了CNAME记录的话需要禁用CNAME记录并等待10分钟后(TTL=600s)记录失效。

要使用HTTPS访问需要申请一张对应域名的SSL证书并下载到服务器

接着在nginx.conf中添加反代配置,以下为我的设置,仅供参考

server {
    listen 80;
    listen 443 ssl http2;
    ssl_certificate /usr/local/nginx/conf/ssl/img.gamous.cn.crt;#修改为证书地址
    ssl_certificate_key /usr/local/nginx/conf/ssl/img.gamous.cn.key;;#修改为证书地址
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_timeout 10m;
    ssl_session_cache builtin:1000 shared:SSL:10m;
    ssl_buffer_size 1400;
    add_header Strict-Transport-Security max-age=15768000;
    ssl_stapling on;
    ssl_stapling_verify on;
    server_name img.gamous.cn;
    error_log /data/wwwlogs/img.gamous.cn_nginx.log;
    access_log /data/wwwlogs/img.gamous.cn_nginx.error;
    location / {
        root /data/www/;
        proxy_pass  https://xxxxx.cos.ap-xxxxx.myqcloud.com; #修改为COS访问地址
    }
}

nginx -s reload后生效,,https访问图床就有小绿锁啦

修改好PicGoAPP里的设置就大功告成

使用体验

由于网络图片被上传会导致错误,以及离线存档的必要,又因为不是所以文档都需要上传图床,因此最推荐的还是设置插入时图片默认复制到指定路径,统一本地与网络图片。

右键上传图片

如果要发布某篇文章可以直接上传所有图片,然后文章里的图片就全部会自动上传并把现有的本地链接替换成图床链接,只要复制粘贴就可以快速发布啦。

参考资料

[1]腾讯云文档-对象存储 https://cloud.tencent.com/document/product/436