阿里云
发表主题 回复主题
  • 4322阅读
  • 1回复

CDNAPIpython版接口问题

级别: 新人
发帖
2
云币
12
— 本帖被 cloud_service 从 售后支持 移动到本区(2015-07-23) —
使用了几天CDN API接口下载日志,每次手动执行脚本,都是成功的,但用系统任务计划执行,都是失败的, wWSdTLX  
原因: f]G>(V=i  
日志中记录的执行报错信息:decode() argument 1 must be string, not None o/C\d$i'  
f)g7 3=  
m85WA # `  
这个信息是在接口脚本:aliyun/api/base.py引发的 {0;3W7  
引发的相关代码: N?5x9duK  
8[|UgI,>z  
def percent_encode(encodeStr): uP<0WCN  
    encodeStr = str(encodeStr) H*bs31i{  
    res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') q~@]W=  
    res = res.replace('+', '%20') P i Fm|  
    res = res.replace('*', '%2A') RN)dS>$  
    res = res.replace('%7E', '~') #-8\JEn  
    return res 4*aZ>R2hO  
$5v0m#[^  
.`7cBsXH  
具体是出在sys.stdin.encoding xl"HotsX-x  
备注: <BSc* 9Q  
终端的输入编码:sys.stdin.encoding终端的输出编码:sys.stdout.encoding uZZU{U9h  
l^d[EL+  
%lX%8Z$v  
用任务计划动执行的时候,就不涉及终端输入了,结果就报错了 DAwqo.m  
wZ4tCZA  
I+ es8  
我把sys.stdin.encoding去掉了,系统crontab执行就正常了 ,+g&o^T  
修改后的代码: Dw7vv]+ S  
* ,v|y6  
def percent_encode(encodeStr): fK&e7j`qO  
    encodeStr = str(encodeStr) n!6Z]\8~$  
   res = urllib.quote(encodeStr.encode('utf8'), '') T~fmk f$  
    #res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') $7QoMV8V  
    res = res.replace('+', '%20') /)xlJUq  
    res = res.replace('*', '%2A') -k(CJ5H9  
    res = res.replace('%7E', '~') GabYfUkO  
    return res .[u> V  
R.LL#u};  
aF|d^  
D0mI09=GtQ  
级别: 新人
发帖
1
云币
1
只看该作者 沙发  发表于: 2017-12-04
ReCDNAPIpython版接口问题
这个问题困扰了我一个月了 X%bFN  
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
批量上传需要先选择文件,再选择上传
 
验证问题: 阿里云官网域名是什么? 正确答案:www.aliyun.com
上一个 下一个