S3cmd signurl中文支持问题

S3cmd signurl中文支持问题

s3cmd --version
s3cmd version 1.6.1

s3cmd signurl s3://s3demo/ceph知识树.png +200

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    An unexpected error has occurred.
  Please try reproducing the error using
  the latest s3cmd code from the git master
  branch found at:
    https://github.com/s3tools/s3cmd
  and have a look at the known issues list:
    https://github.com/s3tools/s3cmd/wiki/Common-known-issues-and-their-solutions
  If the error persists, please report the
  following lines (removing any private
  info as necessary) to:
   s3tools-bugs@lists.sourceforge.net


You have encountered a UnicodeEncodeError.  Your environment
variable LANG=zh_CN.UTF-8 may not specify a Unicode encoding (e.g. UTF-8).
Please set LANG=en_US.UTF-8 or similar in your environment before
invoking s3cmd.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Invoked as: /usr/local/bin/s3cmd signurl s3://hxs1-s3soft/ceph知识树.png +200
Problem: UnicodeEncodeError: 'ascii' codec can't encode characters in position 31-33: ordinal not in range(128)
S3cmd:   1.6.1
python:   2.7.10 (default, Oct 23 2015, 19:19:21)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)]
environment LANG=zh_CN.UTF-8

Traceback (most recent call last):
  File "/usr/local/bin/s3cmd", line 2923, in <module>
    rc = main()
  File "/usr/local/bin/s3cmd", line 2843, in main
    rc = cmd_func(args)
  File "/usr/local/bin/s3cmd", line 2017, in cmd_signurl
    debug("url to sign: %r" % url_to_sign)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 31-33: ordinal not in range(128)

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    An unexpected error has occurred.
  Please try reproducing the error using
  the latest s3cmd code from the git master
  branch found at:
    https://github.com/s3tools/s3cmd
  and have a look at the known issues list:
    https://github.com/s3tools/s3cmd/wiki/Common-known-issues-and-their-solutions
  If the error persists, please report the
  above lines (removing any private
  info as necessary) to:
   s3tools-bugs@lists.sourceforge.net
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

在s3cmd源码文件中添加下面两行解决

reload(sys) 
sys.setdefaultencoding('utf-8') 

patch最终效果

 
2894 if __name__ == '__main__':
2895     try:
2896         ## Our modules
2897         ## Keep them in try/except block to
2898         ## detect any syntax errors in there
2899         reload(sys) #新加
2900         sys.setdefaultencoding('utf-8') #新加
2901         from S3.ExitCodes import *
2902         from S3.Exceptions import *

转载于:https://my.oschina.net/diluga/blog/737814

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值