最近在研究openstack的swift,在使用python向swift发送http请求的时候,发现有一个问题,在第一次GET之后,拿到了X-Auth-Token,但是,使用这个token去访问的时候 /var/log/swift/proxy.error里面显示有一个编码错误:
Jan 27 17:12:37 server1 proxy-server: STDERR: record.message = record.getMessage() (txn: txf6c5d07b1e2f4d28ab9ac-005a6c4285) (client_ip: 192.168.56.1)
Jan 27 17:12:37 server1 proxy-server: STDERR: File "/usr/lib/python2.7/logging/__init__.py", line 329, in getMessage (txn: txf6c5d07b1e2f4d28ab9ac-005a6c4285) (client_ip: 192.168.56.1)
Jan 27 17:12:37 server1 proxy-server: STDERR: msg = msg % self.args (txn: txf6c5d07b1e2f4d28ab9ac-005a6c4285) (client_ip: 192.168.56.1)
Jan 27 17:12:37 server1 proxy-server: STDERR: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 41: ordinal not in range(128) (txn: txf6c5d07b1e2f4d28ab9ac-005a6c4285) (client_ip: 192.168.56.1)
显然是编码的问题,但是,按理来说应该是utf-8的编码,应该是不会报错的。上网查了一下,swift在一些环境里面确实是会有这个问题:https://bugs.launchpad.net/swift/+bug/1580678
里面也给了一个解决方案:
To some extent, this bug intersects with the recently described me: