纯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第三方库


热门话题
JavaPax考试:从非标准Maven存储库解析Karaf特性存储库(XML文件)   java Spring启动Bean创建异常   java中将ArrayList转换为数组的方法   Android Studio的java Unity插件。   java在CheckStyle中从方法计数中排除getter和setter   HibernateJava。sql。SQLSyntaxErrorException:表/视图“序列”不存在   与命令行程序Java vs C通信   java WebView膨胀异常   java在O(n)java8流中寻找两个列表的交集   java使用Gradle运行单元测试时,最大堆大小在哪里设置?   ssl加载java应用程序(CXF)内的jks文件   CI:Jenkins Git:Simple Java项目:希望在特定时间在脚本上发送消息   java根据位置更改数字   java按数值排序字符串数组   macos java版本“1.6.0_65”是否与java 6模棱两可?   Cassandra中的java时间戳