← Back to team overview

duplicity-team team mailing list archive

[Merge] lp:~mcuelenaere/duplicity/duplicity into lp:duplicity

 

Maurus Cuelenaere has proposed merging lp:~mcuelenaere/duplicity/duplicity into lp:duplicity.

Requested reviews:
  duplicity-team (duplicity-team)

For more details, see:
https://code.launchpad.net/~mcuelenaere/duplicity/duplicity/+merge/358411

Make sure we don't load files completely into memory when transferring them from/to the remote WebDAV endpoint.

This should fix https://bugs.launchpad.net/duplicity/+bug/1671755
-- 
Your team duplicity-team is requested to review the proposed merge of lp:~mcuelenaere/duplicity/duplicity into lp:duplicity.
=== modified file 'duplicity/backends/webdavbackend.py'
--- duplicity/backends/webdavbackend.py	2018-07-23 14:55:39 +0000
+++ duplicity/backends/webdavbackend.py	2018-11-06 21:17:50 +0000
@@ -25,6 +25,7 @@
 import httplib
 import os
 import re
+import shutil
 import urllib
 import urllib2
 import urlparse
@@ -409,7 +410,7 @@
             response = self.request(u"GET", url)
             if response.status == 200:
                 # data=response.read()
-                target_file.write(response.read())
+                shutil.copyfileobj(response, target_file)
                 # import hashlib
                 # log.Info("WebDAV GOT %s bytes with md5=%s" %
                 # (len(data),hashlib.md5(data).hexdigest()) )
@@ -432,7 +433,7 @@
         response = None
         try:
             source_file = source_path.open(u"rb")
-            response = self.request(u"PUT", url, source_file.read())
+            response = self.request(u"PUT", url, source_file)
             # 200 is returned if a file is overwritten during restarting
             if response.status in [200, 201, 204]:
                 response.read()


Follow ups