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

CDNAPIpython版接口问题

级别: 新人
发帖
2
云币
12
— 本帖被 cloud_service 从 售后支持 移动到本区(2015-07-23) —
使用了几天CDN API接口下载日志,每次手动执行脚本,都是成功的,但用系统任务计划执行,都是失败的, ,a#EW+" Z  
原因: ~K@'+5Pc  
日志中记录的执行报错信息:decode() argument 1 must be string, not None <tioJG{OT  
"Wx]RN:  
3po:xMY  
这个信息是在接口脚本:aliyun/api/base.py引发的 %j7XEh<'  
引发的相关代码: <F04GO\  
5 (A5Y-B  
def percent_encode(encodeStr): J`2"KzR0w"  
    encodeStr = str(encodeStr) !F?XLekTi  
    res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') qgrg CJ  
    res = res.replace('+', '%20') 63A}TBC  
    res = res.replace('*', '%2A') q:g2Zc'Y~W  
    res = res.replace('%7E', '~') ^aW Z!gi  
    return res /t(C>$ }p  
yq$,,#XDD=  
U,LTVYrO  
具体是出在sys.stdin.encoding ^b %0 B  
备注: }1rm  
终端的输入编码:sys.stdin.encoding终端的输出编码:sys.stdout.encoding `/_G$_  
V dn&c  
nl9P, d  
用任务计划动执行的时候,就不涉及终端输入了,结果就报错了 z<5m fAm  
t]e;;q=L.  
Qa.u Mq  
我把sys.stdin.encoding去掉了,系统crontab执行就正常了 a`0=AQ  
修改后的代码: YX#-nyK  
MuSUKBhM  
def percent_encode(encodeStr): ^4o;$u4R  
    encodeStr = str(encodeStr) S.a%  
   res = urllib.quote(encodeStr.encode('utf8'), '') O]m+u  
    #res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') nWHa.H#  
    res = res.replace('+', '%20') T' ~!9Q  
    res = res.replace('*', '%2A') +}a ]GTBgA  
    res = res.replace('%7E', '~')  Sr?#S  
    return res C$5[X7'  
v~Y^r2  
GDuMY\1  
'{B!6|"X  
级别: 新人
发帖
1
云币
1
只看该作者 沙发  发表于: 2017-12-04
ReCDNAPIpython版接口问题
这个问题困扰了我一个月了 71{p+3Z&  
发表主题 回复主题
« 返回列表上一主题下一主题

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