最近的折腾

最近折腾上gae了。以前只是用他来"科学"上网gae真的很强大的说。搭建博客,网盘,相册等等。我这两天就跟着教程做,但是各种错误,各种苦恼呀。下面罗列出我遇到的各种错误。

首先是sdupload 这个上传一直出错。什么400.502 404各种错误。开始上传的时候一直都不出现邮箱和密码得选项,后来才知道是有缓存的。把当前用户名下的一个.appcfg_cookies文件删除,就可以了。还发现在繁体系统和简体系统下上传的错误代码不一样。可就是没发现错误的解决方法。
既然sdupload无法上传,咱就用谷歌的自己上传工具吧。下载安装好后老是提示找不到phyton。可事实上我安装了,于是手动给它指定路径。
心里想这次该可以上传了。。可是,还不行。。出错误了。。一堆代码,错误信息保存在安装文件下的文件夹下。于是又google。还真找到好多答案。于是照做吧。。该替换的替换该删掉的删掉。终于成功上传了,做了个gae相册。

然后呢,还没玩,因为gae被封锁。所以你的相册就打不开,那就绑定域名呗。。又遇到一大堆难题。gae绑定域名要谷歌企业套件。结果,一时脑热就用了那个还没发展好的cn.ms域名来申请套件,申请套件也有问题,不过还好可以解决。。申请好了之后要验证域名所有者,悲催发现cn.ms和tk都不能支持txt这种验证。于是又曲线救国用第三方dns解析tk域名,tk域名验证成功了,可就是因为我当初申请套件的时候是用cn.ms 做的主域名,改不了。。于是gae绑定域名宣告失败.
过几天继续,争取弄好。

用gae搭建图床

原文链接点我,感谢上官大人,作者讲的很详细,网盘,博客,图床等,我这里略有删减。
gae 我想大家也不陌生了吧,具体怎么申请这里不说了,介绍的比较详细的相关文章应该也有很多。这里主要是利用gae搭建图床,主要是针对免费空间的用户,因为流量有限,也可方便管理。
下载地址1:http://is.gd/KHt9ue,你也可以在我的 演示网盘 下载。

第一步:打开https://appengine.google.com,登陆你的用户名和密码,创建一个应用程序,比如:我创建了一个wangpan301的应用,那么这个wangpan301就是我要创建网盘appid。下图:
第二步: 解压和修改,下载Photos_v0.42,然后修改app.yaml为你的appid,然后运行Photos_v0.42文件夹中update.bat输入google帐号和密码上传,过两三分钟就可访问了。修改完成后保存。用记事本修改也可,但最好用编辑器。如下图注意输入密码时候是不显示的,如果没有出现输邮箱和密码选项,是以前上传缓存了,找到删除即可。

注:由于GAE在国内被封,appspot.com的域名不能直接访问,所以按以上方法搭建的网盘/博客/相册都不能直接访问。

Google App Engine 上传数据

Google App Engine ,这个就不多说什么了。最近在这上面上传应用,搭建网盘和图床,虽然失败n次,历时n久。但最后终于还是成了。
期间当然还是遇到很多问题的。比如说这个上传问题。

Google App Engine上传大家使用的比较广泛的是第三方工具sdupload,因为这个简便,绿色不用装软件。命令行模式也不是很复杂,尤其是有教程的情况下。但是,也是会出些问题的。比如我这次就出现了问题,如下:


Please visit http://code.google.com/appengine for the latest SDK
****************************************************************
Scanning files on local disk.
Initiating update.
Cloning 8 static files.
Cloning 17 application files.
Closing update.
2012-08-16 09:28:58,530 ERROR sdappcfg.pyo:1334 An unexpected error occurred. Ab
orting.
Rolling back the update.
Error 404: --- begin server output ---
You are using a decommissioned API. Please upgrade to a more recent version of
the App Engine SDK which can be found at:
https://developers.google.com/appengine/downloads
--- end server output ---


网上搜索了下,1334错误的还真不在少数,但是真正解决的还是很少的。我访问过上传工具的官方站点,但人家已经停止更新了,因为谷歌出了自己的上传工具。博客的留言也好久没回复。问题没解决。只能转战其他工具。

于是下载GAE,由于gae 是基于py 开发的,所以必须要装py 了,墙裂建议用2.x版本python。高版本据说某种情况出现问题。
全部安装完成,进行上传。上传过程如图
appcfg
图中,我上传的目录为c:\wangpan 。先用cd命令进入谷歌gae安装的目录,我的是在C:\Program Files\Google\google_appengine然后用appcfg.py update c:\wangpan 然后就是输入邮箱帐号和密码的。一会儿就上传成功了。

上传成功,你就可以访问你的应用网址了。登录网盘后台:http://youappid.appspot.com/admin/因为默认谷歌的域名被墙.所以自备梯子,或者绑定域名。

最后说下我的网盘地址: http://pan.xilou.cn.ms     墙外地址:http://xiloupan.appspot.com/
相册地址 http://image.xilou.cn.ms     墙外地址:http://xiloupic.appspot.com/内容都是一样的

gae绑定域名(多图杀猫)

额。已经成功绑定域名很久了,早想弄个教程出来。可是一拖再拖,直到今日都差点忘记了如何操作了。 好在重温了一遍,终于记起来了。
人真的容易健忘。。正所谓好记性不如烂笔头,特此记录下来。。
绑定域名的前提条件是,你已经成功申请google企业套件了。如果没有申请成功这篇文章就不用看了。

首先创建gae 应用appid 。成功之后点击appid 名字进入dashboard 面板。里面有很多选项,找到左侧面板administration选项,如图:administ1 点击第一个application 选项,如图:找到Domain Setupdomain 1点击adddomain 然后输入你申请谷歌企业套件时绑定的域名,完成后会跳转到企业套件。

然后,登录谷歌企业套件,点击主导航的设置,可以看到自己创建的gae id 信息 如图左侧ctrongl
点击id 名称进入,然后点击添加新网址。如图website,后面的无法修改。你只需要在上面输入www,或者其他img 等二级域名前缀,然后修改cname记录。如图cname 然后等待域名生效就ok 了。另外由于我的企业套件本身绑定的是二级域名,cname记录不好设置。可以设置a 记录。

ip 地址指向216.239.32.21 173.194.72.121 貌似还有其他地址可用。 至于做a 记录还是cname记录看个人喜好了,如果人a 记录ip地址被屏蔽就访问不了,要手动更换地址。cname指向ghs.googlehosted.com

将snova和goagent服务端部署到同一个gae app上

思路的来源是issue上有人想snova 和goagent的app id 能同时使用。鉴于goagent部署成功后的地址是xx.appspot.com/2 ,而snova部署成功后地址是xx.appspot.com。两者貌似不冲突,于是就想到合理利用下。

众所周知,gae 没个帐号可以创建10个app,每个app每天1g流量。10个app多也不算多,也不算少了。关键是我在上面部署了好几个应用,比如网盘,相册之类。然后goagent 又部署了5个app ,这样下来也没多少剩下了。snova也就部署了一个app 而已。合理利用app 在这种情况下就比较需要了。因为goagent实在是比较火(连百度百科都有),受到gfw太多照顾,现在我基本上都是在用snova。

便查资料,得知GAE允许在服务器服务器上保存站点的多个版本,包括程序、模版、静态文件等。它是通过对app.yaml的version的设置进行版本的管理。如默认情况下version=1,此时对站点内所有文件的修改,上传后都将更新到1这个版本里。

因为我的goagent app都很早上传了,都是版本1,5个懒得改了,于是就改snova的版本。就改snova-gae-gserver-[version]/gae/src文件夹下的app.yaml文件。如下:
application: xxx(前面有空格) 将默认的snova-master改成你的app id
version: 2 版本改为2
runtime: go
api_version: go1
剩下的事情就是上传部署了。虽说就只简单的改那两个东西,我也摸索了大半天,最终才搞定的。因为wiki中两种方式部署如下
1.用自带的Deployer部署
下载并解压snova-gae-gserver-[version].zip
windows用户执行deployer.exe;Mac/Linux用户执行python deployer.py
按照deployer的指示输入,执行部署

2.用Appengine Go SDK部署
下载并解压snova-gae-gserver-[version].zip
进入解压的目录, 修改app.yaml, 将application: snova-master中snova-master值改为自己创建的appid
执行appcfg.py update snova-gae-gserver-上传(appcfg.py在'/'下


看到区别没有,就是用自带的Deployer部署并不需要(修改app.yaml, 将application: snova-master中snova-master值改为自己创建的appid)这样做。经过多次测试后,发现这样单纯的改个版本号之后用deployer上传是会出现错误的。
gae 新版本(version2)部署成功后通用访问地址是http://2.appid.appspot.com/。gsnova地址也可以通过2-dot-appid.appspot.com来访问。
服务端配置好了,配client端。修改gsnova gae段为 WorkerNode[0]=2-dot-appid 。如果是修改了goagent的版本号则需要修改proxy.ini下的appid 为2.appid 。

最后 你也可以进入https://appengine.google.com 后台控制面板设置默认版本(非必须)。如图:gae version
假如我将修改后2.0版本的snova 设为默认,则可以直接http://appid.appspot.com 看到snova-gae(Go) 0.17.2 server is running!而不是goagent的404 页面了。如果改为默认的话那workmode那段,理论上应该就可以直接 WorkerNode[0]=appid也可以了(米测试)。只是不隐蔽了,很明显,想必goagent当初把路径该为http://appid.appspot.com/2就是为了不那么容易被发现把!

ps:3.4日更新 尝试部署在apjp上,用linux vps成功部署。修改 appengine-web.xml 文件中的
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application>application-id </application>application-id 改为你自己的名称如xxx
<version>1</version>将1 改为需要的版本号。
<threadsafe>true</threadsaf
</appengine-web-app>


客户端编辑APJP_LOCAL.properties,修改如下:
APJP_REMOTE_HTTP_SERVER_1_REQUEST_URL=https://google.com/HTTP(S)
APJP_REMOTE_HTTP_SERVER_1_REQUEST_PROPERTY_1_KEY=Host
APJP_REMOTE_HTTP_SERVER_1_REQUEST_PROPERTY_1_VALUE=3.xxx.appspot.com (仅改此处) 最后貌似这个apjp 的gae服务端不行或许是没找到好的ip,只能打开国内的网站。