通过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版本,因为 档案中缺少各种文件。