语雀图片与七牛云之间的迁移同步
昨天登录在 Github 同步博客时候,忽然发现很多文章的图片都出现了 404!后来检查才知道,原来从 2019.08.07 起,语雀上的一些静态图片开启了防外链设置,因此之前通过 api 同步语雀文章的内容到第三方的平台,会导致包括图片在内的静态资源都无法访问。
于是乎,开始寻找解决方案,即通过七牛的镜像空间同步语雀的图片,然后渲染博客页面的时候将语雀域名转换为七牛上绑定的自定义域名,从而确保博客的图片都正常可用。关于七牛云镜像存储,这里列举两点介绍:
七牛的镜像存储服务是一种快速的数据迁移和加速服务。可以帮助用户实现无缝数据迁移,迁移过程中并不影响原有业务系统的访问。镜像存储适用于迁移原有业务系统的已有数据。七牛提供分布式存储和加速分发服务,以分布式存储为核心服务。
在镜像存储的业务模型里面,原来的图片或者视频访问域名将被配置为七牛的源站,而页面里面引用图片或视频链接的地方必须使用新的访问域名。然后将新的访问域名绑定 (CNAME) 到七牛空间对应的域名。在这些操作完成之后,终端用户就可以通过七牛访问图片或者视频等非结构化资源了。在每个访问请求到七牛的时候,如果七牛空间中不存在这个资源,那么七牛将主动回客户源站抓取资源并存储在空间里面,这样七牛就不需要再次回源客户的资源站点了。
更详细的介绍,请参考七牛云官方文档:《七牛镜像存储使用手册》。
下面介绍一下具体的操作。
注册,并新建对象存储的存储空间
七牛云注册,实名认证,这里不细说,很简单。新建对象存储的存储空间也很简单:
![image.png d107ae39-c013-4883-b49d-9232f6e10b38.png](https://oscimg.oschina.net/oscnet/d107ae39-c013-4883-b49d-9232f6e10b38.png)
增加镜像存储的镜像源
在创建好的对象存储空间(note-db)中,选择 "镜像存储",添加语雀镜像源地址:
![image.png e0aa07ab-9ec9-4053-9394-42dd9964b023.png](https://oscimg.oschina.net/oscnet/e0aa07ab-9ec9-4053-9394-42dd9964b023.png)
绑定域名,配置 SSL
七牛云绑定域名,并且设置 CNAME 的一个重要前提是:域名必须备案成功了才可以使用的!
简单说一下绑定了域名的作用:我们在七牛云上存储了图片文件什么的,访问地址都需要加上一个域名的。起初我们开通对象存储的时候,七牛云会给我们一个测试域名。但是测试域名会被收回,公告如下:
![image.png dff3a42c-2c59-488d-90b4-c3e8079ae898.png](https://oscimg.oschina.net/oscnet/dff3a42c-2c59-488d-90b4-c3e8079ae898.png)
所以我们需要用我们自己的二级域名来绑定七牛云进行访问(最好不用 www 开头的二级域名来绑定,因为 www 开头的域名,我们都是作为主域名的),具体绑定步骤如下。
1. 绑定域名
![image.png a0ede5ef-f229-4370-a3f5-9637d5a588b7.png](https://oscimg.oschina.net/oscnet/a0ede5ef-f229-4370-a3f5-9637d5a588b7.png)
![image.png 31dd85c4-a42e-44e5-94bc-0f4f9d764999.png](https://oscimg.oschina.net/oscnet/31dd85c4-a42e-44e5-94bc-0f4f9d764999.png)
2. 配置 CNAME
首先,上面 3.1 步骤,点击 "确认" 完成后,即可看到新增加域名的 CNAME 信息:
![image.png 0973abc1-f8f3-4261-872f-cdb4779a841b.png](https://oscimg.oschina.net/oscnet/0973abc1-f8f3-4261-872f-cdb4779a841b.png)
第二步,到你买域名的地方去配置。我是在阿里云上面买的,下面以阿里云为例:
![image.png dbceff0a-2edc-4430-b13a-d3812ed8457d.png](https://oscimg.oschina.net/oscnet/dbceff0a-2edc-4430-b13a-d3812ed8457d.png)
![image.png ad873e17-c157-4ccf-bde6-a780f3b39de0.png](https://oscimg.oschina.net/oscnet/ad873e17-c157-4ccf-bde6-a780f3b39de0.png)
第三,在博客中把博客所有 https://cdn.nlark.com 的域名都替换成 http://qiniu.bioinit.com 即可。
第四,如果想要换成 https://qiniu.bioinit.com,需要在存储空间的 "域名管理" 中修改 https 配置。
![image.png d74e94e8-9cf2-4ada-80fd-6c0751761216.png](https://oscimg.oschina.net/oscnet/d74e94e8-9cf2-4ada-80fd-6c0751761216.png)
HTTPS 配置中的 SSL 证书可以选择申请七牛与的免费证书;也可以申请阿里云的"免费型 DV SSL"证书,然后选择本地上传"证书内容" 和"证书私钥",我这里选择的是阿里云的 "免费型 DV SSL" 证书。
![image.png b3de52ab-a43c-4327-b7f4-9a5f01db6da7.png](https://oscimg.oschina.net/oscnet/b3de52ab-a43c-4327-b7f4-9a5f01db6da7.png)
![image.png faf48b92-1fb3-425a-bb70-b0bb72e37ecb.png](https://oscimg.oschina.net/oscnet/faf48b92-1fb3-425a-bb70-b0bb72e37ecb.png)
![image.png d12f8bf8-bd42-40eb-98e0-36d542f49193.png](https://oscimg.oschina.net/oscnet/d12f8bf8-bd42-40eb-98e0-36d542f49193.png)
"确认" 提交后,等待大约 10 分钟,可以在七牛云对象存储空间的 "域名管理" → "HPPTS 配置" 看到 HTTPS 已经开启。
![image.png 5dd0d46d-433a-4a77-bfe8-b80c965658de.png](https://oscimg.oschina.net/oscnet/5dd0d46d-433a-4a77-bfe8-b80c965658de.png)
最后,在博客中把博客所有 https://cdn.nlark.com 的域名都替换成 https://qiniu.bioinit.com,并检查图片是否正常显示。
个人博客
参考 R 语言大神谢益辉(https://yihui.name/)和 Jekyll 的一些大神,基于 Github Pages 搭建的 hugo+rblowndown、Jekyll 博客,附上首页截图,需要的请拿去。
![hugo.png 3d704c94-4ce2-4148-aa16-b3279b56f826.png](https://oscimg.oschina.net/oscnet/3d704c94-4ce2-4148-aa16-b3279b56f826.png)
![jekyll_site.png 821fdb4d-756a-433c-9998-7f7528d39b57.png](https://oscimg.oschina.net/oscnet/821fdb4d-756a-433c-9998-7f7528d39b57.png)
——The End——
![51a188b7-e77b-4fd6-9e3c-8472f1c04dc6.gif](https://oscimg.oschina.net/oscnet/51a188b7-e77b-4fd6-9e3c-8472f1c04dc6.gif)
本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。