未知

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 prometheus占用JDBC连接   java如何在ApacheDerby中选择聚合的学生/班级数据?   Java支持内部/本地/子方法吗?   java如何向Jsoup添加带有用户名和密码的代理?   servlets介绍如何创建java。木卫一。具有URI的文件对象?   java使用布尔值设置实体的字符串字段?   java API请求:无法从Android Studio工作   java无法从URL捕获JSON响应   Java中的amazon web服务AWS DynamoDB和MapReduce   为重载方法强制转换Java任务   JavaSolr+SpringRoo为每个客户提供单独的索引   父对象的java调用方法,即使子对象重写它?