使用qiniu的sdk生成upload token在hmac里报错

新手上路,请多包涵
token = q.upload_token(BUCKET_NAME, key)

File "build/bdist.linux-x86_64/egg/qiniu/auth.py", line 152, in upload_token
File "build/bdist.linux-x86_64/egg/qiniu/auth.py", line 156, in __upload_token
File "build/bdist.linux-x86_64/egg/qiniu/auth.py", line 70, in token_with_data
File "build/bdist.linux-x86_64/egg/qiniu/auth.py", line 62, in __token
File "/usr/lib/python2.7/hmac.py", line 133, in new

return HMAC(key, msg, digestmod)

File "/usr/lib/python2.7/hmac.py", line 72, in init

self.outer.update(key.translate(trans_5C))

TypeError: character mapping must return integer, None or unicode

========================================================================
环境:
系统是ubuntu 14.04
是默认python 2.7.6
试了sdk 6.1.9 和 7.0.5以及最新源码安装。

纠结中...
暂没法往下走了,求助啊!

阅读 3.5k
2 个回答
✓ 已被采纳新手上路,请多包涵

我自己弄好啦! 去掉以下代码行即可:

from __future__ import unicode_literals, print_function

你是在自己签名么?upload_token已经封装好签名了,你可以直接上传,这边给你一个python上传的demo

# -*- coding: utf-8 -*-
# flake8: noqa

import os
import string

import sys
sys.path.append("/Users/Forrest/Documents/support/sdk/python-sdk/")

from qiniu import Auth
from qiniu import put_file, set_default, config

access_key = '。。。'
secret_key = '。。。'
bucket_name = 'itisatest3'
key = 'sample.mp4'

set_default(connection_pool=500)
print(config.get_default('connection_pool'))

q = Auth(access_key, secret_key)

localfile = '/Users/Forrest/Downloads/temp.jpeg'
key = 'test_file'

token = q.upload_token(bucket_name, key)
ret, info = put_file(token, key, localfile)
print(info)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进