纯python nfs客户端

pyNfsClient的Python项目详细描述


Introduction

pynfsclient是一个通用的开源工具包,用于作为客户端的linux-nfs文件系统模拟。 构造通过rpc发送的参数,然后参照nfs协议规范(rfc1813)分析响应。 您可以形成您的自定义方案,其中包括满足支出的基本操作。 目前只支持nfs v3,nfs v4.1正在开发中。

pynfsclient独立于操作系统和应用程序。该工具包使用 Python,两者都支持 Python2.7和Python3。

pynfsclient项目托管在GitHub上,在那里可以找到源代码, 一个问题跟踪程序,以及一些进一步的文档。

Latest version

Installation

如果已经安装了Pythonpip, 您只需运行:

pip install pyNfsClient

或者,您可以通过下载源代码来获取源代码 从PyPI分发并提取,或通过克隆项目存储库 来自GitHub。之后,您可以使用以下命令安装框架:

python setup.py install

Example

下面是一个简单的例子,它查找一个文件,然后对它执行几个操作。

frompyNfsClientimport(Portmap,Mount,NFSv3,MNT3_OK,NFS_PROGRAM,NFS_V3,NFS3_OK,DATA_SYNC)# variable preparationhost="192.221.4.119"mount_path="/nfsshare"auth={"flavor":1,"machine_name":"host1","uid":0,"gid":0,"aux_gid":list(),}# portmap initializationportmap=Portmap(host,timeout=3600)portmap.connect()# mount initializationmnt_port=portmap.getport(Mount.program,Mount.program_version)mount=Mount(host=host,port=mnt_port,timeout=3600)mount.connect()# do mountmnt_res=mount.mnt(mount_path,auth)ifmnt_res["status"]==MNT3_OK:root_fh=mnt_res["mountinfo"]["fhandle"]try:nfs_port=portmap.getport(NFS_PROGRAM,NFS_V3)# nfs actionsnfs3=NFSv3(host,nfs_port,3600)nfs3.connect()lookup_res=nfs3.lookup(root_fh,"file.txt",auth)iflookup_res["status"]==NFS3_OK:fh=lookup_res["resok"]["object"]["data"]write_res=nfs3.write(fh,offset=0,count=11,content="Sample text",stable_how=DATA_SYNC,auth=auth)ifwrite_res["status"]==NFS3_OK:read_res=nfs3.read(fh,offset=0,auth=auth)ifread_res["status"]==NFS3_OK:read_content=str(read_res["resok"]["data"],encoding="utf-8")assertread_content.startswith("Sample text")else:print("write failed")else:print("Lookup failed")finally:ifnfs3:nfs3.disconnect()mount.umnt(mount_path,auth)mount.disconnect()portmap.disconnect()else:mount.disconnect()portmap.disconnect()

License

MIT许可证(MIT)

版权所有(c)2019Cooper Yang

特此免费授予获得本软件副本和相关文档文件(以下简称“软件”)的任何人使用本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再授权和/或出售本软件副本的权利,并在符合以下条件的情况下,允许向其提供软件的人员这样做:

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

<软件>提供“原样”,无任何担保,明示或默示,包括但不限于适销性、适合特定用途和不侵权的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权诉讼或其他诉讼中,由软件或软件的使用或其他交易引起的、由软件引起的或与之相关的。

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

推荐PyPI第三方库


热门话题
缺少java MIMessage附件   java试图从JSON数组向数据库插入数据   铸造java。util。ArrayList无法转换为java。util。矢量   在到达末尾后从头开始读取csv文件(Java、OpenCSV)   Java swing如何在另一个线程中打开框架   java如何为集合正确编写此比较器。排序(arrayList、comparator)?   JavaOOD将配置传递给外部类的最佳方式   java不确定如何使用switch语句从main()调用要运行的方法   java循环菜单以在选择后显示   java将位置对象转换为地址(谷歌地图)   java Hazel cast客户端端口问题   使用JarJar重新打包工具的java   使用Java Netscape目录LDAP API和二进制筛选器值   java如何从Google App Engine下载应用程序源文件   java如何居中javafx场景图“摄影机”   java调用servlet而不提交并停留在同一个JSP页面中   将文本文件加载到HashMap<Integer,List<String>>java中   JavaFX平台。重新加载站点后运行更高版本()