Kan's Travel

一个职业旅行者的故事

使用OneDrive做博客图床,以及在国内高速访问的一些经验

使用OneDrive做博客的图床,是很多个人站长的的选择。相对于其它图床,有以下几点优势: 便宜。用Office365家庭版,229元左右即可买到一年,可支持6人使用。平均下来,每人每年只要38元,还“送”正版Office软件的使用权。 容量大。每人有1TB的空间,做博客图床绰绰有余,可以说永远不会不够用。 官方支持外链和https,且不限流。比起各种奇技淫巧的方法,比如“微博图床”,只要运营商想,分分钟可以关掉外链。而一些限流的免费图床,如果以后博客做大,流量增加,巨大的迁移成本,会让你不得不选择缴纳高昂的费用。 微软大公司背书。一些国内图床(比如七牛云),虽然倒闭/转型/被勒令关闭的可能性也不大,但终究有这种可能。而对于承载了博客所有图片资源的图床来说,简直是致命的。相比起来,首富家的微软产品,特别是同时为企业服务的OneDrive,这种可能性基本为0。 国内未被墙。比起GitHub这类虽然免费,但国内几乎无法访问的图床,OneDrive尽管也有不稳定的时候,但大多情况下依然是可以访问的。 TOC1 目前的主流方法及其问题1.1 Picture Share软件1.2 mapaler的获取直链网站1.3 对storage.live.com进行转发加速2  “近乎完美”的解决方案3 用OneDrive做图床的博客写作,最高效的工作流(workflow)3.1 使用Word写博客,并插入图片3.2 导入文本并嵌入图片3.3 粘贴到Wordpress编辑器3.4 同步到其它平台 目前的主流方法及其问题   目前OneDrive图片,批量生成外链的方法主要有三种: Picture Share软件 https://www.richasy.cn/apps/pictureshare.html mapaler的获取直链网站 https://mapaler.github.io/GetOneDriveDirectLink/ 以上两种方法生成的链接,都基于storage.live.com域名。 目前墙内虽可以正常访问该域名,但速度实在太慢(使用山东电信宽带测试),一张图片半分钟加载不出来,慢到基本没有作为图床的实用性。 Ping该域名,会发现服务器位于美国,完全没有CDN加速。甚至连ping都ping不通…… 对storage.live.com进行转发加速 另一种替代的方法是,使用Cloudflare Worker或网站自身境外服务器,对storage.live.com进行转发加速。 代表分别是OneIndex和OdIndex。 当然,自己在nginx里配置一个proxy_pass也是一样的。 这种方法,的确大大加速了图片的读取速度。 然而Cloudflare Worker免费版有每天10万次的请求限制,即使是每月5美元的收费版,月请求次数也被限制在1000万次(平均每天33万次)——以后要是博客做大了,不够用怎么办……咳咳,梦总是要有的。 而用自己服务器转发,无疑占用了服务器本身有限的的带宽和流量,起不到图床本身的“免流”效果。    “近乎完美”的解决方案   传说中OneDrive的外链,是自带CDN加速的。然而很显然,storage.live.com域名下的外链,至少在墙内,是完全没有加速的效果。 后来,反复尝试下,竟发现OneDrive的“外链CDN加速”,竟然藏在一个很多人都不用的地方: 用网页版OneDrive打开图片位置——右键——选择“嵌入”: 会发现生成了一长段URL,而且并不是“storage.live.com”下的: 把这个URL复制进博客,会发现:之前加载极慢的图片,几乎可以做到秒开了! 尝试ping链接中的服务器: 发现延时只有61ms,很显然是经过了香港CDN的加速。 至此,“OneDrive外链访问速度慢”的问题,近乎完美解决。 之所以说“近乎”,是因为还有两个小问题: 这种方法,没法像Picture Share软件或mapaler的网页那样,批量生成外链。只能挨个生成,比较繁琐。 每张图片的URL,对应的域名都不同。尽管经测试,都指向了13.107.42.12这个香港的CDN服务器,目前完全可以正常访问。但因为涉及域名实在太多,依然存在未来部分域名被(误)墙,网站中个别图片无法打开的风险。 希望可以跟大家探讨,是否有更好的解决方法。 (经测试,1drv.ms域名同样会经过香港CDN加速。是否有可能想办法生成基于此域名的外链?) 以及,目前有一个网站,支持用1drv.ms域名的文件分享链接,生成支持CDN加速的图片外链。但因为分享链接也需要一个一个生成,所以并没有提升效率。   用OneDrive做图床的博客写作,最高效的工作流(workflow)   使用Word写博客,并插入图片 使用Word的目的,是可以方便地一次性缩小与压缩图片。 只要选择“图片格式”——“压缩图片”,并取消勾选“仅应用于此图片”。 选择一个想要的缩图尺寸(建议选择220 ppi以上)。请找一个原始分辨率高的图片做此操作,否则高分辨率选项会变灰,不可选。 然后文中所有图片,就被瞬间统一压缩到想要的尺寸啦! 压缩好的图片,怎样批量提取呢? 只要把Word保存的docx文件,扩展名改为zip。然后就会发现,所有的图片,都严格按文中的顺序,躺在word/media目录中了: (如果同样图片出现多次,该图只会出现在第一次引用的位置,请注意) 然后,将这些图片上传OneDrive即可。 如果图片多于9张,由于Word生成的图片文件名没有前置自动补0,因此在OneDrive里会顺序错乱,如image10-19都在image2前面。 解决方法有很多,比如用ReNamer软件批量重命名一下就好: 导入文本并嵌入图片 导入Typora等Markdown编辑器,并使用前文的方法嵌入OneDrive图片。 粘贴到Wordpress编辑器 请用传统编辑器。古腾堡会有各种Bug。大功告成! 同步到其它平台 同一个Markdown文件,还可以用于粘贴到什么值得买、今日头条、知乎等各种平台,同时发表。微信公众号不行,因为不识别来自OneDrive的图片。需要自己架设一个基于proxy_pass的nginx服务器,做个域名转发,并将md文件中链接,全部替换为自己服务器的URL才可以。

让IPv4 DNS解析优先于IPv6,加快网速的真正管用方法(Windows10)

现在宽带开通IPv6的越来越多,但是IPv6的路由依旧十分不成熟,经常出现同一个网站,使用IPv6访问时,延迟和网速均显著差于IPv4的情况。如以下: IPv4: IPv6: 可以看出,使用IPv6访问时,不仅延迟明显增加,还严重丢包。Windows10的默认策略是:在IPv6启用后,对同时提供IPv6和IPv4的网站,优先使用IPv6访问,导致很多网站(尤其国外的)基本无法访问。 网上的教程,大多数都指向以下微软网站的解决方案: 为高级用户配置 IPv6 - Windows Server | Microsoft Docs 但根据以上链接修改注册表,并重启后,依旧无法解决问题,DNS还是优先使用IPv6解析。 经过反复试验,发现修改注册表无法解决问题,必须修改IPv6的前缀策略优先级。方法如下: 1、开始按钮右键,选择“命令提示符(管理员)”; 2、查看当前前缀策略优先级,使用以下命令: 会得到以上结果,其中 Precedence代表优先级(数值越大越优先)Label是个编号,只要各自不重复即可 “::ffff:0:0/96”——代表IPv4在解析中的优先级;“::/0”——代表IPv6在解析中的优先级。 如果结果中“::/0”不存在,或者比“::ffff:0:0/96”排序更靠前,则会导致优先使用IPv6解析。 我们只需要使用如下命令: 末尾的“10”是优先级(Precedence),一定要保证这个数字比“::ffff:0:0/96”对应的数字小。 “5”是Label,如果之前结果中有“::/0”,就用之前那个数字,否则随便输入一个和其它Label不重复的数字即可。 执行命令成功后,再进行测试: 即可发现此时已经默认优先采用IPv4解析,但IPv6仍可以访问。用以下命令强制使用IPv6解析测试: 问题解决。