def put(self, localpath, remotepath, callback=None, confirm=True):
file_size = os.stat(localpath).st_size<EOL>with open(localpath, "<STR_LIT:rb>") as fl:<EOL><INDENT>return self.putfo(fl, remotepath, file_size, callback, confirm)<EOL><DEDENT>
Copy a local file (``localpath``) to the SFTP server as ``remotepath``.
Any exception raised by operations will be passed through.  This
method is primarily provided as a convenience.

The SFTP operations use pipelining for speed.

:param str localpath: the local file to copy
:param str remotepath: the destination path on the SFTP server. Note
    that the filename should be included. Only specifying a directory
    may result in an error.
:param callable callback:
    optional callback function (form: ``func(int, int)``) that accepts
    the bytes transferred so far and the total bytes to be transferred
:param bool confirm:
    whether to do a stat() on the file afterwards to confirm the file
    size

:return: an `.SFTPAttributes` object containing attributes about the
    given file

.. versionadded:: 1.4
.. versionchanged:: 1.7.4
    ``callback`` and rich attribute return value added.
.. versionchanged:: 1.7.7
    ``confirm`` param added.