博客图片托管

最近,我才意识到,GitHub对GitHub个人网站有诸多限制,主要是网站内容大小及带宽的限制。由于我的GitHub网站的内容逐渐变多,尤其是图片,慢慢的会超过这些限制。于是我就考虑把网站的大部分的图片内容转移到图床服务上去,这样网站体积能够维持在一个较小的水平,图片的带宽也不会走GitHub个人网站的流量。

那么问题来了,我该使用什么样的图床服务呢?我脑海中理想的服务应该是,能像网盘一样方便管理,必须能在个人网站中用图片链接直接插入图片,价格以及额外流量价格实惠。

首先,我考虑的是一些大厂的图片及多媒体的Cloud服务,比如Google Photos(Google Drive)和Apple iCloud,这些服务相对来说价格便宜,但是缺点就是没法在自己的个人网站里直接插入放在那上面的图片,于是就放弃了。

接着,我又想到了网盘服务,例如Google Drive,Dropbox,Icedrive,价格有贵的有便宜的,但是研究了很久也没有看到官方支持的插入图片的接口。(有些trick可以让我把网盘里的图片插入自己的网站,但是这个不是官方认可的接口,所以很容易就break了),于是也放弃了。

然后,我想到了Cloud Storage服务,比如说Amazon S3和Google Cloud Storage,这些服务可以提供文件的URL,供人下载,自然在个人网站插入图片也不在话下。但是这些服务普遍都会按流量收费,如果流量很大的话开销也一定不小。另外,文件插入及下载链接无法自定义,这会让URL迁移有比较大的麻烦。

之后,我看了看专业的图床服务。最有名的是Imgur,还是免费的。缺点是文件管理不是很方便,而且中国大陆无法查看Imgur上的图片。GitHub上也可以托管图片,图床管理软件例如PicGopicx,都可以实现快速GitHub托管,但是缺点是用户要把GitHub Access Token交给这些管理软件,有安全隐患(当然,我们可以注册一个小号专门托管图片)。翻来覆去的找了找,只有SM.MS,上传的图片在中国大陆和国外都可以查看,甚至还提供一次性买断制终身服务,但是免费用户也有每天上传图片数量的限制,而且不能支持图片以外的例如MP4的格式。同样的,除了GitHub托管,其他图床服务的URL无法自定义。

最后,弄来弄去,还是专门弄个GitHub的repo来存放图片吧,这样还可以保持文件夹的结构,图片URL迁移起来也非常方便,直接字符串替换就行了(这是Imgur还有SM.MS等不具备的优点)。也用不着PicGo和picx这些第三方软件了,Git命令就可以搞定。具体的图片URL会是下面这个样子:

1
https://raw.githubusercontent.com/leimao/Blog-Images/main/life/2018-07-13-Half-Moon-Bay/IMG_0280.JPEG

但是经过实际测试,raw.githubusercontent.com这个域名似乎是被国内墙了,中国大陆也无法查看。有人说用免费CDN jsDelivr可以绕开墙,URL只需更改成以下的样子:

1
https://cdn.jsdelivr.net/gh/leimao/Blog-Images@main/life/2018-07-13-Half-Moon-Bay/IMG_0280.JPEG

但经过实际测试,jsDelivr也是被墙了,中国大陆无法查看。

最后,我自己琢磨和试了半天,发现下面的链接因为用的是GitHub的域名,所以不会被墙可以在中国大陆查看,而且也可以正常嵌入到网页中使用。不仅可以成功作用于图片,也可以作用于短视频。

1
https://github.com/leimao/Blog-Images/blob/main/life/2018-07-13-Half-Moon-Bay/IMG_0280.JPEG?raw=true

但上面的做法也不是没有缺点。缺点是速度相对较慢,而且似乎在微信APP内会屏蔽这样的图片链接,所以只能在浏览器上查看。

总体来说,目前并没有一个完美的且性价比高的图床服务。

Author

Lei Mao

Posted on

04-04-2022

Updated on

04-04-2022

Licensed under


Comments