[Twisted-Python] dcc, idea for file resume

peter commercials24 at yahoo.de
Mon Oct 12 12:01:00 MDT 2015


hi,


the way file resume is implemented in DccFileReceive requires to user to 
determine the file size manually and set _resumeOffset.
wouldnt it make sene to just kill the last few bytes of the file and 
resume it?

below is the current connectionMade method from:
http://twistedmatrix.com/trac/browser/tags/releases/twisted-15.4.0/twisted/words/protocols/irc.py#L3013


replace this line:
self.file.seek(self._resumeOffset)

with:
self.file.seek(-3,2)


which removes the last 3 bytes from the file end, 3 is just a guess.


def connectionMade(self):
         dst = path.abspath(path.join(self.destDir,self.filename))
         exists = path.exists(dst)
         if self.resume and exists:
             print "yes i want to resume and the file is there"
             # I have been told I want to resume, and a file already
             # exists - Here we go
             self.file = open(dst, 'rb+')
             self.file.seek(-3,2)
             self.file.truncate()
             log.msg("Attempting to resume %s - starting from %d bytes" %
                     (self.file, self.file.tell()))
         elif self.resume and not exists:
             raise OSError(errno.ENOENT,
                           "You cannot resume writing to a file "
                           "that does not exist!",
                           dst)
         elif self.overwrite or not exists:
             self.file = open(dst, 'wb')
         else:
             raise OSError(errno.EEXIST,
                           "There's a file in the way.  "
                           "Perhaps that's why you cannot open it.",
                           dst)




More information about the Twisted-Python mailing list