Metadata-Version: 2.0
Name: scpclient
Version: 0.6
Summary: scp client, for use with paramiko.
Home-page: https://bitbucket.org/ericvsmith/scpclient
Author: Eric V. Smith
Author-email: eric@trueblade.com
License: Apache License Version 2.0
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Security :: Cryptography
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7

---------
scpclient
---------

A library that implements the client side of the scp (Secure Copy)
protocol. It is designed to be used with paramiko
(http://www.lag.net/paramiko/).

Using paramiko
==============

There are many ways to use paramiko. For the purposes of these
examples, you want to obtain an authenticated SSHClient object::

    import paramiko

    ssh_client = paramiko.SSHClient()
    ssh_client.connect(hostname, username=username, key_filename=key_filename, password=password)

Writing files
=============

The scpclient.Write object is used to write files to an scp
server. Its required parameters are a paramiko.SSHClient instance and
a remote directory name. It has 2 methods: send_file and
send. send_file takes a filename to send, send takes a file-like
object, a remote filename, a mode, and a length. You may call send and
send_file multiple times.

Example::

    with closing(Write(ssh_client.get_transport(), '.')) as scp:
        scp.send_file('file.txt', True)
        scp.send_file('../../test.log', remote_filename='baz.log')

        s = StringIO('this is a test')
        scp.send(s, 'test', '0601', len(s.getvalue()))

Writing directories
===================

Example::

    with closing(WriteDir(ssh_client.get_transport(), 'subdir')) as scp:
        scp.send_dir('../../manuals', preserve_times=True, progress=progress)

Reading files
=============

Example::

    with closing(ReadDir(ssh_client.get_transport(), '.')) as scp:
        scp.receive_dir('foo', preserve_times=True)

Reading directories
===================

Example::

    with closing(Read(ssh_client.get_transport(), '.')) as scp:
        scp.receive('file.txt')


Change log
==========

0.6 2016-10-02 Eric V. Smith
----------------------------
* Fixed issue #8, Support building wheels.
* No code changes.

0.5 2014-04-27 Eric V. Smith
----------------------------
* Fixed issue #5, Not all files included in sdist.
* Fixed issue #6, Rename bdist RPM to python-scpclient.
* No code changes.

0.4 2012-11-28 Eric V. Smith
----------------------------
* Fixed issue #2, Missing contextlib import. Thanks Olivier CARRERE.

0.3 2011-10-31 Eric V. Smith
----------------------------
* Improved documentation, including how to create a paramiko
  connection.

0.2 2011-10-31 Eric V. Smith
----------------------------
* Removed useless tests.
* Fixed embarassing last minute typo which broke the code.
* Included trivial examples in README.txt. Needs much work.
* Forbid files that contain '..' in the filename. This is an attempt
  to prevent path traversal. This approach is simplistic, but it's a
  reasonable first step and gets the job done.

0.1 2011-10-31 Eric V. Smith
----------------------------
* Initial release.


