目前正在为AWS s3签署签名。在我计算签名的最后一个哈希中,我收到以下错误:
signature = hmac.new(signingkey, policy, hashlib.sha256).digest()
File "/usr/lib/python2.7/hmac.py", line 136, in new
return HMAC(key, msg, digestmod)
File "/usr/lib/python2.7/hmac.py", line 71, in __init__
if len(key) > blocksize:
AttributeError: HMAC instance has no attribute '__len__'
代码:
datekey = hmac.new(str("AWS4") + AWS_UPLOAD_SECRET_KEY,stringdate , hashlib.sha256).digest()
dateregionkey = hmac.new(datekey, AWS_UPLOAD_REGION, hashlib.sha256).digest()
dateregionservicekey = hmac.new(dateregionkey,"s3", hashlib.sha256).digest()
signingkey = hmac.new(dateregionservicekey, "aws4_request")
signature = hmac.new(signingkey, policy, hashlib.sha256).digest()
任何导致这种情况的想法?在编码中总是这样的。我们什么都得不到 - -
答案 0 :(得分:0)
signingkey = hmac.new(dateregionservicekey, "aws4_request").digest()
否则签名密钥是一个hmac对象