免翻墙访问googlesheet发布内容,我之前用过两种方法,最近又想出来一种,一起记录一下。

1.反向代理。

如果有一台国外的服务器,在国内能ping通,可以在上面装个宝塔面板,然后按下面步骤操作:

安装nginx—>设置一个站点—>添加一个自己的域名—>一键申请证书开启ssl—>开启反向代理

那么把googlesheet发布的链接中docs.google.com换成自己设置的域名就可以访问了。

 

2.直接抓取图片。

直接把站点建在国内能ping通的国外服务器上,通过服务器的定时任务执行一个sh文件,用wget把googlesheet发布的图片保存到服务器。

这个方法中,有几点经验。

第一,wget -O可以重命名文件。

第二,wget下载带有特殊符号的长链接会出错,可以先把发布的长链接转成短链接。

第三,如果10分钟抓取一次,那么等于本地图片更新一次,blog插入的本地图片可以在url后加入时间戳,来强制刷新缓存。

第四,有较小几率wget抓取失败,抓取时候可以抓两个图,一个备用,如果1图访问不了,就访问2图,这样就很稳定。

 

3.使用CDN服务。

现在很多cdn都是免费的,比如cloudflare、cloudfront、gcore,其中比较推荐cloudfront。

以cloudfront为例,创建分配,

各项设置如下:

源域:docs.google.com

协议:  仅 HTTPS

查看器协议策略:  HTTPS only

缓存键和源请求:  Legacy cache settings, 标题=无,查询字符串=全部,Cookie=全部

对象缓存:  Customize,最短 TTL=0,最长 TTL=0,默认 TTL=0

下图所示的这一段设置比较关键,不改的话,按默认设置就没法成功。

备用域名: 填一个自己的域名

自定义 SSL 证书:点申请证书为上面的备用域名申请证书,完成cname验证,把aws给的证书选上

创建好之后,把上面填的域名,cname解析到分配给你的xxxxx.cloudfront.net上就行了。

接下来把googlesheet发布的链接中docs.google.com换成自己设置的域名就可以访问了。

(这里还有个小技巧,如果进行了优选IP,参考FQ,可以取消cname解析,直接把备用域名设置A记录指向优选ip,正常使用,速度会快一些)

再记录一下另一个CDN,gcore的设置,稍微简单一些。

点Creat CDN resource,

Acceleration and protection type:Accelerate and protect only static assets

Origin:docs.google.com
Cname: 填自己域名
SSL:   Enable HTTPS
Origin pull protocol :HTTPS
CDN caching :关闭
其他都默认就可以,过程里会提示,把备用域名cname解析到某个分配给你的域名xxxxx.gcdn.co
三种方法比较来看,
第一种反代的方式比较鸡肋,因为如果国内可以ping通这台反代服务器,那为什么不直接建站在上面呢?例子1(反代服务器准备关了)
第二种方法因为blog是从本地取图,不需要发送和响应请求的时间,所以速度快,稳定可靠,缺点是只能抓图片格式,对于互动和嵌入式发布没法处理。例子2
第三种方法速度稍慢,但是数据时效性最好,可以处理互动和嵌入式的发布。例子3
例子1和3是互动图表,例子2是图片。
例子3是用gcore部署的,有同样需求的朋友可以直接拿去用,就是将googlesheet发布的链接中,域名改成我这个g66.retire50blog.wang就可以不翻墙访问了。
现在blog首页侧边有发布一些数据,用的是第二种方法,以后一些文章中,会插入一些使用第三种方法的图表。
比如去年我写过600900和132018的套利,用第三种方法可以在文中查入实时动态更新的图表,追踪溢价率与买卖盘口的套利空间。
又比如我用IF期货代替了300etf,期货的分红调整后实际折扣点数,也可以把实时动态更新的图表贴上来。

 

0 评论
内联反馈
查看所有评论