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

CDNAPIpython版接口问题

级别: 新人
发帖
2
云币
12
— 本帖被 cloud_service 从 售后支持 移动到本区(2015-07-23) —
使用了几天CDN API接口下载日志,每次手动执行脚本,都是成功的,但用系统任务计划执行,都是失败的, gx-ib/_f1  
原因: k$u\\`i]oC  
日志中记录的执行报错信息:decode() argument 1 must be string, not None {XHAQ9'  
J**-q(>  
w\"~ *(M  
这个信息是在接口脚本:aliyun/api/base.py引发的 "!ZQ`yl  
引发的相关代码: tx,_0[hZi  
g*]hmkYe9  
def percent_encode(encodeStr): OcA_m.  
    encodeStr = str(encodeStr) `D44I;e^1;  
    res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') (Dy6I;S  
    res = res.replace('+', '%20') }V:B,:  
    res = res.replace('*', '%2A') :U6"HP+?g-  
    res = res.replace('%7E', '~') ~[_u@8l!mN  
    return res ~XzT~WxW  
JPH! .@  
.3X5~OH  
具体是出在sys.stdin.encoding q7}rD$  
备注: RP@U0o  
终端的输入编码:sys.stdin.encoding终端的输出编码:sys.stdout.encoding O$qxo &  
 hTEwp.  
sf([8YUd  
用任务计划动执行的时候,就不涉及终端输入了,结果就报错了 2)~`.CD?L  
8a,uM :  
ty"|yA  
我把sys.stdin.encoding去掉了,系统crontab执行就正常了 lm;Dy*|<  
修改后的代码: R ]h3a :ic  
e3 #0r  
def percent_encode(encodeStr): Wbq0K6X  
    encodeStr = str(encodeStr) ':>u*  
   res = urllib.quote(encodeStr.encode('utf8'), '') L@5j? N?F  
    #res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') =bBV A0y  
    res = res.replace('+', '%20') P<%}!Y  
    res = res.replace('*', '%2A') ]c9\[Kdq}H  
    res = res.replace('%7E', '~') 7C&J88|\  
    return res 9\zasa  
]\C wa9  
.E:3I!dH7  
K8=jkU  
级别: 新人
发帖
1
云币
1
只看该作者 沙发  发表于: 2017-12-04
ReCDNAPIpython版接口问题
这个问题困扰了我一个月了 oj(st{,  
发表主题 回复主题
« 返回列表上一主题下一主题

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