-
-
Notifications
You must be signed in to change notification settings - Fork 910
TypeError: Unicode-objects must be encoded before hashing in s3cmd sync --cf-invalidate #1006
Copy link
Copy link
Closed
Description
Thanks for making s3cmd, it's super useful!
I recently tried to use it with python3 and got the following traceback when using the --cf-invalidate flag:
Traceback (most recent call last):
File "/Users/ben/.virtualenvs/bknet/bin/s3cmd", line 3092, in <module>
rc = main()
File "/Users/ben/.virtualenvs/bknet/bin/s3cmd", line 3001, in main
rc = cmd_func(args)
File "/Users/ben/.virtualenvs/bknet/bin/s3cmd", line 1885, in cmd_sync
return cmd_sync_local2remote(args)
File "/Users/ben/.virtualenvs/bknet/bin/s3cmd", line 1864, in cmd_sync_local2remote
_invalidate_on_cf(destination_base_uri)
File "/Users/ben/.virtualenvs/bknet/bin/s3cmd", line 1834, in _invalidate_on_cf
results = cf.InvalidateObjects(destination_base_uri, uploaded_objects_list, default_index_file, cfg.invalidate_default_index_on_cf, cfg.invalidate_default_index_root_on_cf)
File "/Users/ben/.virtualenvs/bknet/lib/python3.5/site-packages/S3/CloudFront.py", line 452, in InvalidateObjects
cfuris = self.get_dist_name_for_bucket(uri)
File "/Users/ben/.virtualenvs/bknet/lib/python3.5/site-packages/S3/CloudFront.py", line 587, in get_dist_name_for_bucket
response = self.GetList()
File "/Users/ben/.virtualenvs/bknet/lib/python3.5/site-packages/S3/CloudFront.py", line 323, in GetList
response = self.send_request("GetList")
File "/Users/ben/.virtualenvs/bknet/lib/python3.5/site-packages/S3/CloudFront.py", line 506, in send_request
request = self.create_request(operation, dist_id, request_id, headers)
File "/Users/ben/.virtualenvs/bknet/lib/python3.5/site-packages/S3/CloudFront.py", line 555, in create_request
signature = self.sign_request(headers)
File "/Users/ben/.virtualenvs/bknet/lib/python3.5/site-packages/S3/CloudFront.py", line 567, in sign_request
signature = sign_string_v2(string_to_sign)
File "/Users/ben/.virtualenvs/bknet/lib/python3.5/site-packages/S3/Crypto.py", line 68, in sign_string_v2
signature = base64.encodestring(hmac.new(encode_to_s3(secret_key), string_to_sign, sha1).digest()).strip()
File "/Users/ben/.virtualenvs/bknet/lib/python3.5/hmac.py", line 144, in new
return HMAC(key, msg, digestmod)
File "/Users/ben/.virtualenvs/bknet/lib/python3.5/hmac.py", line 84, in __init__
self.update(msg)
File "/Users/ben/.virtualenvs/bknet/lib/python3.5/hmac.py", line 93, in update
self.inner.update(msg)
TypeError: Unicode-objects must be encoded before hashing
Tried on both python3.5.1 and python3.7.0.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels