原因
Blogger是个好东西,但是因为一些奇怪的原因,在中国总是访问不了。
偶尔看到一个博文:《利用GAE给Blogger做一个国内可以访问的镜像站》,十分高大上。
因此跟着文章思路瞎琢磨了一番,仅此记录。
bs2grproxy
项目主页:https://code.google.com/p/bs2grproxy/
源代码:http://bs2grproxy.googlecode.com/svn/
工具下载地址:https://code.google.com/p/bs2grproxy/downloads/list
工具备份:http://yunpan.cn/Q4qLULxwErWKm
作者的描述:
How to use
1. Download the source package
2. Modify app name in app.yaml
3. Upload the app
Enjoy
由此看来,这是一个基于GAE的轻量级反向代理程序。
前期步骤
不多赘述,引用Luke在博文的步骤,略修改。
步骤
1. 在GAE中新建立一个空的app,并记录下app名称。
2. 下载资源包 (这部之前你应该已经做到了)
3. 修改app.yaml文件中的app名称:application: 你的App名称
version: 1-2
runtime: python
api_version: 1handlers:
- url: /(.*)
script: bs2grproxy.py
secure: optional下载bs2grproxy-1.2.zip后解压,然后用记事本打开app.yaml文件。其中application:后的斜体字部分就是你需要修改的地方,这里你应该换成自己的app名。
同时Luke建议大家再编辑下bs2grpconfig.py这个文件:
# You can set them later directly in Database
# HTML target url
TARGET_HOST = “你的博客地址”
# Cache check option. value can be ‘EOD’ or 0 <= number.PS:如果没有配置bs2grpconfig.py,也可以在上传完程序后按以下步骤修改,只是等其生效需要很长很长时间。
- 进入相应app的管理页面 - Data - Datastore Viewer - 进入“name=www”项目。
- 在页面的最下方修改“target_host”的Value值。
- 保存等其生效。
4.上传配置好的bs2grproxy。
另,Luke推荐的SDUpload已失效,作者在趣客中有提到。
可以设置secure让APP支持https。secure共有三个属性:
- never: 当我们使用https前缀访问时,会自动重定向到http。
- always: 当使用http访问时,会自动重定向到https。
- ptional: 自由选择,http and https均可使用。
后期的坑
其实原理和前期步骤并不复杂,但是由于自己之前并没有了解GAE,加之SDUpload的失效,因此在上传App的时候十分不顺利,在此记录。
SDUpload的失效
下载了SDUpload,使用SDUpload update ../app/
命令,返回302错误代码。
后查得作者博文得知,由于google 已经提供了界面化的上传工具GoogleAppEngineLauncher,所以作者停止了更新。
GoogleAppEngineLauncher的未知错误
从SDUpload作者处得知有了GoogleAppEngineLauncher这个工具,因此焦点转到这个工具上。SDUpload作者说已经将这个工具分离出来了,但是貌似地址失效,因此转到GAE官网下载SDK(python版本 备份)。
但是事情并没有那么顺利,用GoogleAppEngineLauncher打开修改后的App,点击Deploy后出了一个窗口,写着如下的东西:
2014-03-02 21:15:14 Running command:
“[‘G:\\xb1\xe0\xb3\xcc\python2.7\pythonw.exe’, ‘-u’, ‘C:\Program
Files\Google\google_appengine\appcfg.py’, ‘–no_cookies’,
u’–email=saber_zodiac@163.com’, ‘–passin’, ‘update’,
‘C:\Users\saber_000\Desktop\bs2grproxy\app’]”
然后就没有反应了,试了好几次也是如此,于是将该列表用空格join了一下,得到如下命令:
G:\编程\python2.7\pythonw.exe -u C:\Program Files\Google\google_appengine\appcfg.py --no_cookies --email=saber_zodiac@163.com --passin update C:\Users\saber_000\Desktop\bs2grproxy\app
看来还是需要命令行了。
终于搞掂,命令行
一开始使用命令行执行上面的命令发现没有反应。
于是cd到appcfg.py所在目录,直接执行:
appcfg.py --no_cookies --email=saber_zodiac@163.com --passin update C:\Users\saber_000\Desktop\bs2grproxy\app
提示:
Another transaction by user saber_zodiac@163.com is already in progress for app: s~lyc-blog, version: 1-2. That user can undo the transaction with “appcfg rollback”.
哦,那就rollback吧。
appcfg.py rollback C:\Users\saber_000\Desktop\bs2grproxy\app
完了之后,再执行update,终于顺利好了。
大功告成
我的博客:http://mrlyc.blogspot.com/ 终于有了个不怕被墙的镜像站:http://lyc-blog.appspot.com/ 了。
0 评论:
发表评论