Backups to Backblaze B2 failing

Hi all,

Backblaze have introduced an S3 compatible API which means it should work with the “other” endpoint in the MIAB backup setup. However currently my backups are failing like this:

Something is wrong with the backup: ERROR 30 S3ResponseError
. Traceback (innermost last):
.   File "/usr/bin/duplicity", line 1555, in <module>
.     with_tempdir(main)
.   File "/usr/bin/duplicity", line 1541, in with_tempdir
.     fn()
.   File "/usr/bin/duplicity", line 1380, in main
.     action = commandline.ProcessCommandLine(sys.argv[1:])
.   File "/usr/lib/python2.7/dist-packages/duplicity/commandline.py", line 1127, in ProcessCommandLine
.     globals.backend = backend.get_backend(args[0])
.   File "/usr/lib/python2.7/dist-packages/duplicity/backend.py", line 223, in get_backend
.     obj = get_backend_object(url_string)
.   File "/usr/lib/python2.7/dist-packages/duplicity/backend.py", line 209, in get_backend_object
.     return factory(pu)
.   File "/usr/lib/python2.7/dist-packages/duplicity/backends/_boto_single.py", line 166, in __init__
.     self.resetConnection()
.   File "/usr/lib/python2.7/dist-packages/duplicity/backends/_boto_single.py", line 191, in resetConnection
.     location=self.my_location)
.   File "/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py", line 628, in create_bucket
.     response.status, response.reason, body)
.  S3ResponseError: S3ResponseError: 400 
. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
. <Error>
.     <Code>AuthorizationHeaderMalformed</Code>
.     <Message>Authorization header does not contain a Credential</Message>
. </Error>

I’m tipping that it’s because the B2 API only supports version 4 S3 authentication and the MIAB version of duplicity is using a previous version. The solution could be to set “signature_version=‘s3v4’” for BOTO but MIAB doesn’t have a boto.cfg file that I can find anywhere. The backup.py script looks for /etc/boto3.cfg and I’ve tried putting the signature flag in there but I’m still getting the same error.

  • Where is the backup script setting BOTO parameters?
  • Has anyone got the MIAB backup working with B2?

After much investigation this problem appears to be due to MIAB using boto and not boto3 for connections to AWS (and compatible) storage. As boto doesn’t support S3 v4 signatures the connection fails.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.