Search code examples
pythonpysftp

pysftp put error "size mismatch in put! 0 != 14911"


i looked around for this error, but all I could really find is similar mismatch errors for python 3.3 support. I originally was getting errors when trying to use a *.txt wildcard to put all files in the localpath to the remotepath, kept getting file does not exist errors... so i finally just tried this with a single file, and got this:

size mismatch in put! 0 != 14911

Here is the code, along with python info, running linux mint 13 maya. Im really new to python and this module, and new to programming period. So dont assume i know what you are talking about....=P

Python 2.7.3 (default, Apr 20 2012, 22:39:59) [GCC 4.6.3] on linux2

import pysftp as sftp


def putjob():
    try:
        s = sftp.Connection(host='secure.sftp.site', username='username', password='password')

        remotepath='/Home/xxx24659/Upload/'
        localpath='/home/xxx24659/Local/Upload/Q0001.txt'
        s.put(localpath,remotepath)

        s.close()

    except Exception, e:
        print str(e)

putjob()

Solution

  • ymonad had it correct, pysftp was returning the size of the directory entry as requested.

    You are correct, that pysftp does not do recursive directory copying currently. However, there is an issue for it in the tracker, so you can vote for it.

    https://bitbucket.org/dundeemt/pysftp/issue/10/remote-walkdirs

    or roll your own and send a pull request!