Please describe the problem.

Amazon Glacier remote doesn't work as expected. It seems like glacier-cli no longer works with git-annex.

What steps will reproduce the problem?

  1. use git-annex from archlinux repo
  2. download and install this with pip: https://github.com/basak/glacier-cli
  3. follow these instructions https://git-annex.branchable.com/tips/using_Amazon_Glacier/
  4. the problems occurs when trying to move or copy content to glacier

What version of git-annex are you using? On what operating system?

version: 6.20160418-geff8673 on: Linux 4.10.13-1-ARCH #1 SMP PREEMPT Thu Apr 27 12:15:09 CEST 2017 x86_64 GNU/Linux

Please provide any additional information below.

# If you can, paste a complete transcript of the problem occurring here.
# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log

# with python 3.6
% git annex copy file.mp3 --to glacier
copy file.mp3 (checking glacier...) (to glacier...) 
98%           0.0 B/s 0sTraceback (most recent call last):
  File "/home/me/.local/bin/glacier", line 736, in <module>
    main()
  File "/home/me/.local/bin/glacier", line 732, in main
    App().main()
  File "/home/me/.local/bin/glacier", line 718, in main
    self.args.func()
  File "/home/me/.local/bin/glacier", line 500, in archive_upload
    file_obj=self.args.file, description=name)
  File "/usr/lib/python3.6/site-packages/boto/glacier/vault.py", line 178, in create_archive_from_file
    writer.close()
  File "/usr/lib/python3.6/site-packages/boto/glacier/writer.py", line 231, in close
    self.partitioner.flush()
  File "/usr/lib/python3.6/site-packages/boto/glacier/writer.py", line 79, in flush
    self._send_part()
  File "/usr/lib/python3.6/site-packages/boto/glacier/writer.py", line 64, in _send_part
    data = b''.join(self._buffer)
TypeError: sequence item 0: expected a bytes-like object, str found
failed                  
git-annex: copy: 1 failed

# --------------------------
# with python2.7
% git annex copy file.m3 --to glacier
copy file.mp3 (checking glacier...) (to glacier...) 
98%           0.0 B/s 0sTraceback (most recent call last):
  File "/home/me/.local/bin/glacier", line 736, in <module>
    main()
  File "/home/me/.local/bin/glacier", line 732, in main
    App().main()
  File "/home/me/.local/bin/glacier", line 718, in main
    self.args.func()
  File "/home/me/.local/bin/glacier", line 500, in archive_upload
    file_obj=self.args.file, description=name)
  File "/usr/lib/python2.7/site-packages/boto/glacier/vault.py", line 178, in create_archive_from_file
    writer.close()
  File "/usr/lib/python2.7/site-packages/boto/glacier/writer.py", line 228, in close
    self.partitioner.flush()
  File "/usr/lib/python2.7/site-packages/boto/glacier/writer.py", line 79, in flush
    self._send_part()
  File "/usr/lib/python2.7/site-packages/boto/glacier/writer.py", line 75, in _send_part
    self.send_fn(part)
  File "/usr/lib/python2.7/site-packages/boto/glacier/writer.py", line 222, in _upload_part
    self.uploader.upload_part(self.next_part_index, part_data)
  File "/usr/lib/python2.7/site-packages/boto/glacier/writer.py", line 129, in upload_part
    content_range, part_data)
  File "/usr/lib/python2.7/site-packages/boto/glacier/layer1.py", line 1279, in upload_part
    response_headers=response_headers)
  File "/usr/lib/python2.7/site-packages/boto/glacier/layer1.py", line 114, in make_request
    data=data)
  File "/usr/lib/python2.7/site-packages/boto/connection.py", line 1071, in make_request
    retry_handler=retry_handler)
  File "/usr/lib/python2.7/site-packages/boto/connection.py", line 943, in _mexe
    request.body, request.headers)
  File "/usr/lib/python2.7/httplib.py", line 1042, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib/python2.7/httplib.py", line 1082, in _send_request
    self.endheaders(body)
  File "/usr/lib/python2.7/httplib.py", line 1038, in endheaders
    self._send_output(message_body)
  File "/usr/lib/python2.7/httplib.py", line 880, in _send_output
    msg += message_body
UnicodeDecodeError: 'ascii' codec can't decode byte 0x8c in position 0: ordinal not in range(128)
failed                  
git-annex: copy: 1 failed

# End of transcript or log.

Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)

Yes it's a great tool :). Thanks! AWS Glacier integration would be a perfect addition and I could employ git-annex at my company.

Closing as it's not a bug in git-annex, but glacier-cli. done --Joey