未知

dsmsfilepackager的Python项目详细描述


将选定的文件或目录添加到文件包中,生成清单, 以及从sftp服务器上传或下载。用于DSM。

请注意,文件包不是线程安全的。由你来确保 只有一个进程在任何时间点操作包。为了这个 原因,建议您使用uuid(如芹菜任务id)来 确保每个流程都有自己的空间。

编写新包时如何使用:

from dsmsfilepackager.filepackage import DSMSFilePackage
import uuid

fpack = DSMSFilePackage(target_id=111, job_id=13244, uid=uuid.uuid4(),
                        hostname="remote_sagenth.example.com",
                        hostport="1222", username="theuser",
                        priv_key="/home/theuser/.sagenth/key",
                        local_root="/tmp/cache",
                        remote_root="/upload_target")

# register in manifest
fpack.add("myfile.txt")
fpack.add_dir("docs/")

fpack.finish_and_upload()  # generate a manifest and upload

一旦包生成完成,文件都将在本地 /tmp/cache/111/13244/[uuid],以及ftp服务器上 /上传目标/111/13244/[uuid]。

现在,其他进程可以访问本地缓存的文件 可用,或者它们将通过sftp获取并移动到本地缓存中,如果 不是。

如何提取以前存储的包:

 # auto-get remote files, reading from cache when available

 >>> fpack = filepackage.fetch(target_id=111, job_id=13244, uid=uuid.uuid4(),
                               host="remote_sagenth.example.com",
                               hostport="1222", username="theuser",
                               priv_key="/home/theuser/.sagenth/key",
                               local_root="/tmp/cache",
                               remote_root="/upload_target")
 >>> print fpack.manifest.files
 ["myfile.txt", "docs/readme.txt", "docs/2.py"]
 >>> file_info = fpack.manifest.get("myfile.txt")
 >>> file_info.size
 1246
 >>> file_info.sha256
 "d8d5d29645ce8552646ad236244304892bb9e0df633e2603a1fa616682e1c431"
 >>> file_info.type
"Python script, ASCII text executable"
 >> fh = fpack.open("myfile.txt")  # will be made available locally

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

推荐PyPI第三方库


热门话题
Java匹配正则表达式并提取组oneliner   同步嵌套映射和集合(Java)   使用ApachePOI将结果集从Java数据库导出到Excel   java创建一个方法,其中变量是jTable   java如何创建带有嵌套循环的半菱形形状?   C/C++和Java的调试器   Java API中的生成器模式示例?   java代码分支应该应用什么样的单元测试组合?   如何求算法的时间复杂度   java如果我想代理所有服务调用,以便在不显式调用记录器的情况下正确记录它们,我有什么选择?   RabbitMQ java客户端到多个队列的连接   出现第一个空格之前的java掩码字符串   java使用子类对象修改其超类对象中的受保护属性   java如何使用PagerSlidingTabStrip删除选项卡?   java在禁用按钮后刷新整数值