I am in the process of replacing my NAS with a new one. In that process, I am moving from a working Duplicity 0.7.18.1 on Python 2.7.12 to Duplicity 0.8.04 on Python 3.7.3.
And I am getting the following error in the Webdav backend, using credentials that work on the existing installation (as well as using a different webdav client).
$ duplicity -v9 full --volsize 64 --name tmp /tmp $TARGET/tmp
Using archive dir: /home/sven/.cache/duplicity/tmp
Using backup name: tmp
GPG binary is gpg, version (2, 2, 12)
Import of duplicity.backends.adbackend Succeeded
Import of duplicity.backends.azurebackend Succeeded
Import of duplicity.backends.b2backend Succeeded
Import of duplicity.backends.botobackend Succeeded
Import of duplicity.backends.cfbackend Succeeded
Import of duplicity.backends.dpbxbackend Failed: No module named 'requests'
Import of duplicity.backends.gdocsbackend Succeeded
Import of duplicity.backends.giobackend Succeeded
Import of duplicity.backends.hsibackend Succeeded
Import of duplicity.backends.hubicbackend Succeeded
Import of duplicity.backends.imapbackend Succeeded
Import of duplicity.backends.jottacloudbackend Succeeded
Import of duplicity.backends.lftpbackend Succeeded
Import of duplicity.backends.localbackend Succeeded
Import of duplicity.backends.mediafirebackend Succeeded
Import of duplicity.backends.megabackend Succeeded
Import of duplicity.backends.multibackend Succeeded
Import of duplicity.backends.ncftpbackend Succeeded
Import of duplicity.backends.onedrivebackend Succeeded
Import of duplicity.backends.par2backend Succeeded
Import of duplicity.backends.pcabackend Succeeded
Import of duplicity.backends.pydrivebackend Succeeded
Import of duplicity.backends.rsyncbackend Succeeded
Import of duplicity.backends.ssh_paramiko_backend Succeeded
Import of duplicity.backends.ssh_pexpect_backend Succeeded
Import of duplicity.backends.swiftbackend Succeeded
Import of duplicity.backends.sxbackend Succeeded
Import of duplicity.backends.tahoebackend Succeeded
Import of duplicity.backends.webdavbackend Succeeded
Using WebDAV protocol http
Using WebDAV host
svenhz.stackstorage.com port None
Using WebDAV directory /remote.php/webdav/backup/tmp/
Main action: full
Acquiring lockfile b'/home/sven/.cache/duplicity/tmp/lockfile'
================================================================================
duplicity $version ($reldate)
Args: /usr/local/bin/duplicity -v9 full --volsize 64 --name tmp /tmp webdavs://
address@hidden/remote.php/webdav/backup/tmpLinux helios4 4.19.63-mvebu #5.91 SMP Wed Jul 31 15:58:43 CEST 2019 armv7l
/usr/bin/python 3.7.3 (default, Apr 3 2019, 05:39:12)
[GCC 8.3.0]
================================================================================
Using temporary directory /tmp/duplicity-nxtddn9t-tempdir
Registering (mkstemp) temporary file /tmp/duplicity-nxtddn9t-tempdir/mkstemp-h85_trch-1
Temp has 1056886784 available, backup will use approx 87241523.
WebDAV create connection on '
svenhz.stackstorage.com'
WebDAV PROPFIND /remote.php/webdav/backup/tmp/ request with headers: {'Connection': 'keep-alive', 'Depth': '1'}
WebDAV data length: 95
WebDAV response status 401 with reason 'Unauthorized'.
Backtrace of previous error: Traceback (innermost last):
File "/usr/local/lib/python3.7/dist-packages/duplicity/backend.py", line 371, in inner_retry
return fn(self, *args)
File "/usr/local/lib/python3.7/dist-packages/duplicity/backend.py", line 580, in list
return [tobytes(x) for x in self.backend._list()]
File "/usr/local/lib/python3.7/dist-packages/duplicity/backends/webdavbackend.py", line 343, in _list
raise e
File "/usr/local/lib/python3.7/dist-packages/duplicity/backends/webdavbackend.py", line 317, in _list
response = self.request(u"PROPFIND", self.directory, self.listbody)
File "/usr/local/lib/python3.7/dist-packages/duplicity/backends/webdavbackend.py", line 240, in request
self.headers[u'Authorization'] = self.get_authorization(response, quoted_path)
File "/usr/local/lib/python3.7/dist-packages/duplicity/backends/webdavbackend.py", line 271, in get_authorization
return self.get_basic_authorization()
File "/usr/local/lib/python3.7/dist-packages/duplicity/backends/webdavbackend.py", line 291, in get_basic_authorization
return u'Basic %s' % base64.encodestring(auth_string).strip()
File "/usr/lib/python3.7/base64.py", line 540, in encodestring
return encodebytes(s)
File "/usr/lib/python3.7/base64.py", line 527, in encodebytes
_input_type_check(s)
File "/usr/lib/python3.7/base64.py", line 513, in _input_type_check
raise TypeError(msg) from err
TypeError: expected bytes-like object, not str
Attempt 1 failed. TypeError: expected bytes-like object, not str