Willscott/go-NFS:Golang NFSv3服务器

2020-08-27 05:50:19

NFS服务器在网络上运行。侦听器用于将文件系统导出到NFS客户端。Usage的结构类似于许多其他Golang网络服务器。

导入(";github.com/go-git/go-billy/v5/memfs";nfs";github.com/will scott/go-nfs";nfShelper";github.com/willscott/go-nfs/helpers";)Listener,_:=NET。收听(";TCP";,";:0";)FMT。Printf(";服务器在%s\n";上运行,侦听器。Addr())mem:=memfs。New()f,err:=mem。Create(";hello.txt";)f.write([]byte(";hello world";))f.close()处理程序:=nfShelper。NewNullAuthHandler(Mem)cacheHelper:=nfShelper。NewCachingHandler(处理程序)nfs。SERVE(Listener,cacheHelper)。

端口通常通过端口映射确定。通过特定的挂载选项可以避免运行portmap(这是唯一需要特权侦听端口的部分)。例如mount-o port=n,mount port=n-t nfs host:/mount/localmount。

该服务器目前使用BILLY来提供文件系统抽象层。NFS协议的某些边不能转换为这种抽象。

NFS期望访问索引节点或引用文件系统中的文件的等效唯一标识符。这些在这里被认为是不透明的标识符,这意味着它们在硬链接的情况下不会像预期的那样工作。

BILL抽象层没有扩展到公开文件的uid和gidownership。如果所有权对您的文件系统很重要,您将需要确保os.FileInfo满足其他约束。特别是,此库查询Sys()转义影线,如果您的文件系统填充syscall.Stat_tConstance结构,则将使用在该对象中指定的所有权。(=