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

CDNAPIpython版接口问题

级别: 新人
发帖
2
云币
12
— 本帖被 cloud_service 从 售后支持 移动到本区(2015-07-23) —
使用了几天CDN API接口下载日志,每次手动执行脚本,都是成功的,但用系统任务计划执行,都是失败的, O|/tRkDMP{  
原因: RU'J!-w{  
日志中记录的执行报错信息:decode() argument 1 must be string, not None _1Eyqh`oh  
5Tu.2.)N  
LSs={RD2+p  
这个信息是在接口脚本:aliyun/api/base.py引发的 ])JJ`Z8Bk  
引发的相关代码: &d2/F i+  
<eI;Jph5  
def percent_encode(encodeStr): ppYz~ {"r  
    encodeStr = str(encodeStr) 1Li@O[%X<  
    res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') <vrx8Q*6  
    res = res.replace('+', '%20') wVVe L$28  
    res = res.replace('*', '%2A') pqe tYu  
    res = res.replace('%7E', '~') I5~DC  
    return res ev3x*}d0  
6IX!9I\sT  
Yc$|"to  
具体是出在sys.stdin.encoding p%s D>1k  
备注: P8jK yo  
终端的输入编码:sys.stdin.encoding终端的输出编码:sys.stdout.encoding d.Z]R&X08  
i_MI!o  
t'J fiGM  
用任务计划动执行的时候,就不涉及终端输入了,结果就报错了 6~}H3rvO}  
*t_&im%E  
S|[UEU3FpB  
我把sys.stdin.encoding去掉了,系统crontab执行就正常了 --9mTqx  
修改后的代码: u!i5Q  
WdT|xf.Q&  
def percent_encode(encodeStr): 8syo_sC |  
    encodeStr = str(encodeStr) pR"qPSv'  
   res = urllib.quote(encodeStr.encode('utf8'), '') cabN<a l  
    #res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') ZwMw g t  
    res = res.replace('+', '%20') x3Ud0[(  
    res = res.replace('*', '%2A') nR7\ o(!  
    res = res.replace('%7E', '~') "7HB3?2>W  
    return res ]c)SVn$6  
k@L~h{`Mc\  
AJT0)FCpR  
{#,FlR2  
级别: 新人
发帖
2
云币
2
只看该作者 沙发  发表于: 2017-12-04
ReCDNAPIpython版接口问题
这个问题困扰了我一个月了 Nd!VR+IZ  
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
批量上传需要先选择文件,再选择上传
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个