从Java程序访问NFS共享

6
我想从我的Java程序中读取一个NFS共享的数据。我需要程序先向NFS服务器进行身份验证,然后进行I/O操作。(要求预先挂载NFS共享不可接受。)
因此,我需要的功能就是这个库提供的功能:http://jcifs.samba.org/,只不过是针对NFS而不是CIFS。 Java本身是否内置了这样的功能或者需要第三方库?
我还想知道是否可以使用Perl、Python或Ruby完成这个任务,但主要还是关注Java。
3个回答

4

我是上面提到的Java NFS客户端的作者。很抱歉回复晚了。虽然我不确定它是否与Java 1.4+兼容,但我仍然有一份拷贝。如果确实有兴趣,我可以继续开发。


谢谢您的回复。我从未实现过我曾经考虑过的NFS功能,而且我也不再需要它了。 - Benjamin
是的,对此很感兴趣! - QuirkyBit

1

有一个名为 yaNFS 的库,它是 webnfs 源代码的移植版。我自己没有尝试过,但看起来可能适合您 http://java.net/projects/yanfs


0

NFS几乎总是在内核中实现,但看起来你可能很幸运。我搜索了“nfs客户端库”,找到了一些,甚至有一个是用Java编写的。

http://www.jars.com/utilities/libraries/resource.php/12291

编辑:那个已经过时并被放弃了。抱歉。

如果您可以在应用程序安装期间进行系统管理员样式更改,则可以设置自动挂载。例如,在我家的Linux系统上,/net/llama/home/peter是我的llama主目录,但诀窍在于只有当我访问该路径时才会挂载。这看起来像是自动挂载的不错介绍:

http://wiki.archlinux.org/index.php/Autofs 它大多适用于任何Linux发行版,除了安装特定软件包的部分。

如果您只想为应用程序的用户启用此功能,则自动挂载目录可以位于具有受限权限的目录内,而不是通常的/net。


那个jars.com链接指向一个Java库列表,一开始看起来很有前途,但它是在1998年发布的,现在已经没有链接了。我肯定希望这可以在Windows机器上工作,这使得自动挂载似乎不是正确的选择。 - Benjamin
抱歉,我在用谷歌找到链接后没有仔细检查。其他客户端库有什么进展吗?也许你可以用Java接口来包装它们? - Peter Cordes
嗯,在此之前,我一直在寻找支持用户/密码验证的库,但现在我发现我工作场所的所有NFS共享都不需要用户名/密码即可挂载。也许NFS不会这样做。我正在查看JFtp,这是一个开源程序,其GUI可以完成我需要我的程序的功能。它很好用,因为它可以在Windows和Linux上运行。至少,我可以从中提取一些代码。 - Benjamin
从查看 JFtp 源代码中,我发现了 Sun WebNFS 开发指南,它似乎与标准的 NFS 服务器兼容。 - Benjamin
1
很高兴你发现了有用的东西。在NFS术语中,经过身份验证的NFS是最近的发明。它是由Sun设计的,当时网络上每台机器的root都是可信的,因此IP:port(其中port <1024)就足够进行身份验证(在Unix上,非特权用户无法打开<1024的端口)。 - Peter Cordes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接