Python脚本实现下载合并SAE日志
由于一些原因,需要SAE上站点的日志文件,从SAE上只能按天下载,下载下来手动处理比较蛋疼,尤其是数量很大的时候。还好SAE提供了API可以批量获得日志文件下载地址,刚刚写了python脚本自动下载和合并这些文件
调用API获得下载地址
文档位置在这里
设置自己的应用和下载参数
请求中需要设置的变量如下
api_url='http://dloadcenter.sae.sina.com.cn/interapi.php?' appname='xxxxx' from_date='20140101' to_date='20140116' url_type='http'#http|taskqueue|cron|mail|rdc url_type2='access'#onlywhentype=http access|debug|error|warning|notice|resources secret_key='xxxxx'
生成请求地址
请求地址生成方式可以看一下官网的要求:
1.将参数排序
2.生成请求字符串,去掉&
3.附加access_key
4.请求字符串求md5,形成sign
5.把sign增加到请求字符串中
具体实现代码如下
params=dict() params['act']='log' params['appname']=appname params['from']=from_date params['to']=to_date params['type']=url_type
ifurl_type=='http': params['type2']=url_type2
params=collections.OrderedDict(sorted(params.items()))
request='' fork,vinparams.iteritems(): request+=k+'='+v+'&'
sign=request.replace('&','') sign+=secret_key
md5=hashlib.md5() md5.update(sign) sign=md5.hexdigest()
request=api_url+request+'sign='+sign
ifresponse['errno']!=0: print'[!]'+response['errmsg'] exit()
print'[#]requestsuccess'