通过sftp上传/下载文件到maildir结构

gocept.sftpcop的Python项目详细描述


sftpcopy允许将文件复制到或从远程服务器复制到 gocept.filestore。sftpcopy将从new目录中获取文件,复制 将它们放到远程服务器上,并在成功时将它们放入cur。同样,它也会 从远程服务器下载文件并将其放入new 另一个应用程序获取它的目录。

用法

您可以在命令行中指定配置文件的名称,或者 将配置值作为dict直接传递到入口点(对于 构建集成)。配置文件的格式如下:

[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

configdict使用以下键:

  • 日志文件
  • 缓冲区大小(默认值:65536,即64 kib)
  • 保持间隔(默认值:5秒)
  • 本地路径
  • 远程路径
  • 主机名
  • 端口
  • 用户名
  • 密码
  • 密钥文件名
  • 跳过文件

密钥文件名优先于密码。如果密钥文件名以dsa结尾, 假设是dsa密钥,否则是rsa密钥。注意,密钥文件不能 受密码保护。

跳过文件是一个文件名列表(本地或远程),在 上传或下载。

文件以缓冲区大小的块复制,以避免将大文件加载到 立即记忆。

您还可以将sftpcopy用作python对象,如下所示:

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()

AMQP集成

如果您需要额外的amqp,gocept.sftpcopy会提供一个gocept.amqprun 通过sftp将消息体作为文件上载的队列处理程序(它尊重 X-Filename头或基于路由密钥和 时间戳)。下面是一个示例zcml片段:

<configure xmlns="http://namespaces.zope.org/zope"
           xmlns:amqp="http://namespaces.gocept.com/amqp">

  <include package="gocept.amqprun" />
  <include package="gocept.sftpcopy" file="meta.zcml" />

  <amqp:sftpupload
    routing_key="test.data"
    queue_name="test.queue"
    hostname="remote.host"
    port="22"
    username="user"
    password="secret" [ALTERNATIVELY] key_filename="/path/to/private_key"
    remote_path="/path/on/remote/machine"
    arguments="
    x-ha-policy = all
    "
    />

</configure>

更改日志

0.6.0(2016-11-02)

  • 固定测试依赖项的版本号。
  • 作为testrunner迁移到py.test。
  • 添加新的“跳过文件”参数以跳过文件的上载或下载。

0.5.1(2015-04-15)

  • 将bootstrap.py更新到zc.buildout 2.3.0版本。
  • 将存储库移动到bitbucket.org

0.5.0(2014-11-26)

  • 设置“保持活动”检查。

0.4.1(2014-03-07)

  • 固定棕色袋释放。

0.4.0(2014-03-07)

  • 将文件分块复制,而不是将每个完整的文件加载到内存中。 有一个新的配置选项buffer_size,默认为64 KB。

0.3.0(2014-02-20)

  • 支持基于密钥的身份验证。
  • 检查上传/下载后传输文件的大小是否与 被转移。

0.2.2(2012-04-04)

  • 更新至gocept.amqprun-0.8。

0.2.1(2012-03-29)

  • 使amqp服务器可配置用于测试。
  • 清理测试留下的垃圾连接(10634)。

0.2(2012-02-22)

  • 添加gocept.amqprun集成。

0.1.4(2009-11-16)

  • 记录连接时发生的错误

0.1.3(2008-02-27)

  • 在主函数中添加了configdict参数,以便于构建 整合。

0.1.2(2008-02-18)

  • 修复了连接日志中的错误。
  • 记住文件存储,这样我们就可以上传/下载了。
  • 做了一些预定义用户的测试。

0.1.1(2007-11-13)

  • 修正了brown back release的0.1版本,因为 档案中缺少各种文件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何为ConcurrentHashMap使用并设置适当的并发级别?   java泛型方法,运行时错误,   java在页面上显示加载的图像   java Paypal定期直接支付问题   java如何延迟重新绘制组件   JavaSpringBoot+Hibernate如何维护@Transient字段   java在其方法中获取关于类的信息   在java中将别名添加到枚举   java如何解决向google报告成绩时“需要重新连接客户端”的问题   清晰的java图像背景   java未找到适合JDateChooser的构造函数(字符串、字符串、字符)   java LRU缓存实现。某些测试用例的代码失败   if语句Java嵌套的if/Else条件   java JSoup“wrap”并非每次都按预期工作   Java Spring引导循环依赖于一个环境   ssl证书无法通过Java和IntelliJ连接到SOAP服务   带整数验证的Java扫描器   java在Flex中呈现具有动态列的datagrid   java Android:通过用户选择的选项将文件上载到服务器   子类中的java抛出错误、异常和运行时异常