Skip to main content

Upload/download files via SFTP to a maildir structure

Project description

sftpcopy allows to copy files to or from a remote server – integrates with gocept.filestore. sftpcopy will take files from the new directory, copy them to the remote server and put them into cur on success. Likewise it will download files from the remote server and put them into the new directory for another application to pick it up.

Usage

You can either give the name of a configuration file on the commandline, or pass the configuration values as a dict directly to the entrypoint (useful for buildout integration). The configuration file has the following format:

[general]
mode = upload # or download
logfile = /path/to/logfile # defaults to stdout if not given
buffer_size = 65536
skip_files =
    name_of_file_to_skip_1
    name_of_file_to_skip_2

[local]
path = /path/on/local/machine

[remote]
path = /path/on/remote/machine
hostname = remote.host
port = 22
username = user
password = secret

The configdict uses the following keys instead:

  • logfile

  • buffer_size (default: 65536, i.e. 64 KiB)

  • keepalive_interval (default: 5 seconds)

  • local_path

  • remote_path

  • hostname

  • port

  • username

  • password

  • key_filename

  • skip_files

key_filename takes precedence over password. If key_filename ends with dsa, it’s assumed to be a DSA key, else an RSA key. Note that the key file must not be password protected.

skip_files is a list of filenames (local or remote), which are skipped during upload or download.

Files are copied in chunks of buffer_size to avoid loading big files into memory at once.

You can also use sftpcopy as a python object like this:

import gocept.sftpcopy
sftp = gocept.sftpcopy.SFTPCopy(
    '/path/on/local/machine',
    'remote.host', 22, 'user', 'secret', '/path/on/remote/machine',
    skip_files=['my_file_to_ignore'])
sftp.connect()
sftp.uploadNewFiles()  # or sftp.downloadNewFiles()

Changelog

2.1 (2025-07-16)

  • Add compatability to Python 3.11 and 3.12.

2.0 (2020-06-18)

Backward incompatible changes

  • Remove AMQP integration. If you need AMQP integration, stick to using a version < 1.0.

Other changes

  • Add support for Python 3.7 and 3.8.

  • Migrate to Github.

Info

  • Version 1.0 was in internal release, so omitting it here.

0.6.0 (2016-11-02)

  • Pinning version numbers of dependencies for tests.

  • Migrate to py.test as testrunner.

  • Add new skip_files parameter to skip upload or download of files.

0.5.1 (2015-04-15)

  • Update bootstrap.py to version from zc.buildout 2.3.0.

  • Move repository to bitbucket.org.

0.5.0 (2014-11-26)

  • Set up keep-alive checking.

0.4.1 (2014-03-07)

  • Fixed brown-bag release.

0.4.0 (2014-03-07)

  • Copy files in chunks instead of loading each complete file into memory. There is a new config option buffer_size which defaults to 64 kB.

0.3.0 (2014-02-20)

  • Support key-based authentication.

  • Check that the size of the transmitted file after up/download matches what was transferred.

0.2.2 (2012-04-04)

  • Update to gocept.amqprun-0.8.

0.2.1 (2012-03-29)

  • Make amqp server configurable for tests.

  • Clean up garbage connections left by tests (#10634).

0.2 (2012-02-22)

  • Add gocept.amqprun integration.

0.1.4 (2009-11-16)

  • Log errors that occur while connecting

0.1.3 (2008-02-27)

  • Added configdict argument to main function for easier buildout integration.

0.1.2 (2008-02-18)

  • Fixed bug in connection logging.

  • Remember filestore so we can actually upload/download.

  • Did some testing predefined user.

0.1.1 (2007-11-13)

  • Fixed brown back release 0.1 which was not usable at all since there were various files missing in the archive.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gocept.sftpcopy-2.1.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gocept.sftpcopy-2.1-py2.py3-none-any.whl (10.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file gocept.sftpcopy-2.1.tar.gz.

File metadata

  • Download URL: gocept.sftpcopy-2.1.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.18

File hashes

Hashes for gocept.sftpcopy-2.1.tar.gz
Algorithm Hash digest
SHA256 fa1a128b1076d80010c007b5d39fdf184c8c06baac56fceacf0c626d6c7cffbe
MD5 d10fc4b56d0a6a357482371d449840f8
BLAKE2b-256 138bcb437fde844b47912e3476e02116463d10dd9ff3290a8f16255ca6b38840

See more details on using hashes here.

File details

Details for the file gocept.sftpcopy-2.1-py2.py3-none-any.whl.

File metadata

  • Download URL: gocept.sftpcopy-2.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.18

File hashes

Hashes for gocept.sftpcopy-2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b9e2706a346b7c9cb9e3955e933f0d66db5186e5e9d982926dad0c1a30220f9a
MD5 e3aeaa08ab79d419803844a4b5f86293
BLAKE2b-256 5ddbd5477992d109ee2b68408f15b0f1114b6d98fce5d557ab455db085dc0f7e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page