/ 闭门造轮子 / Picasa翻墙之路

Picasa翻墙之路

2013-02-13 posted in [非专业吐槽]

Google的大部分服务长期处于被墙状态,其中优秀的相册管理云服务Picasa也不例外。很早之前还用WordPress的时候还好有人开发了服务端代理插件,但后来转向Jekyll后,这个办法就行不通了。虽然我自己可以翻墙使用,但是分享给朋友们的时候极其不方便,要到处都传照片这种重复自己的事情作为一个有DRY洁癖的程序员是绝对不能忍的。于是趁假期的时间开始摸索Picasa的漫漫翻墙路。

先看官方开发包,要到zend里去下,本地部署了但API翻墙受限无法正常访问。于是部署到DH,域名又很诡异,img.tukul.net一直解析不对。只好先用裸域试,又有中文乱码问题,真不知道DH默认怎么设的,要不就是官方开发包有问题。好不容易看到图片了,结果示例中的最大尺寸只有512px,查了多方资料要指定还得从官方文档的指引下手,暂时还不想搞懂。

想到github上总应该有开源的东西,搜了Picasa,找到一个UI很不错的Java web程序,可以部署到app engine上,于是准备照这个搞。然后就是注册新的google app,要绑自定义域名必须注册企业套件,真TMD麻烦。好了之后准备上传,直接用google的sdk命令行失败,因为项目没有编译成war包。找了各种命令行编译以及ant等,感觉都不靠谱,还是去下了eclipse来,但是里面又缺sdk插件。按官网给eclipse添加插件,tmd下到40%就卡住不动!等了半小时终于刷出来了,但还要下载安装,不知道啥时候才搞定!手贱选了android,怎么取消啊,点了没反应啊!叉掉android,又要重新计算依赖啊,tmd要计算到什么时候去啊!

死活一晚上是没下下来,于是再去官网找插件压缩包来下载,用Eclipse终于安装进去,但是sdk的压缩包不能当做插件安装。这就导致创建gae项目时eclipse找不到gae的sdk无法创建,然后更不能编译成war包,于是也不能用sdk命令上传,结成死环!最根本的问题还是墙!最终还是放弃Eclipse,改下ant来编译,幸好官方提供了build脚本,拿下来改改,却总说找不到对应的包。折腾了半天发现web目录的copy没有放在编译过程里,缺了很多东西。加进去以后,终于带着warning编译成功了。然后是上传,第一次用sdk的命令行上传,超时失败。怀疑被墙,设置上代理参数继续,传一半又报ssl握手证书无效,赶紧查了goagent去安装了证书。再传,发现命令行的代理参数好像不是用于上传的,导致什么东西始终通不过,于是又取消了代理,硬着头皮传了一次居然传成功了!

历数下来,这个过程中接触到了大量的技术和知识:官方API文档,zend库,PHP,域名解析,DreamHost配置,github,Java,app engine,Google企业套件,Google Data SDK,Ant,Eclipse,代理证书……最大的原因就是墙!我tmd搞个相册容易么!身在天朝,活的不易啊!

总算最后解决了一半的问题,至少现在朋友们可以免翻墙访问我的Picasa相册了,就是速度略有点慢。下一步要解决的就是代理外链的问题,Java我实在是不想搞了,还是用Node去尝试吧,可惜的是没有Node的SDK,自己写略麻烦。

另外,我要是告诉你们这是我大年初一初二两天宅在家里的成果,会被鄙视么。

-EOF-