Apache Commons-VFS
为我们提供了对各种文件系统的标准访问接口,除了常用的文件类型(
zip
,
gzip
,
jar
,本地文件系统)之外还可以直接操作多种服务器文件,如
ftp
,
sftp
等。在进行服务器文件操作时通常要指定访问的用户名和密码。接下来就以
ftp
服务器的文件系统的连接为例进行介绍。
注:涉及到的
Apache
Commons-VFS
版本为
3.1
1.
文件访问
uri
中指定认证信息
这也是最简单直接的一种访问,文件的
uri
格式为:
schema://[
用户名
]:[
密码
]@[host]:[port][
文件
path]
以
ftp
为例就是:
ftp://admin:123456@192.168.1.1:21/data
获得
FileObject
的关键语句如下:
FileObject fileObj = fsManager.resolveFile(vfsPath);
String vfsPath = "ftp://admin:123456@192.168.1.1:21/data";
FileObject fileObj = fsManager.resolveFile(vfsPath);
2.
密码加密
上例的连接方式可以简单直接的完成远程
ftp
的连接,但是缺点也是比较明显的,那就是密码已明文形式存在的。出于安全的考虑,接下来对密码进行加密处理。
密码密文的生成的方式可以通过
commons-vfs
提供的工具类:
java -cp commons-vfs-2.0.jar org.apache.commons.vfs2.util.EncryptUtil encrypt 123456
输入的密码
123456
加密后的结果为
0471BC0FDAC99FF9EA9E1CDD3F350026
现在我们的连接方式也变成了:
String vfsPath = "ftp://admin:{0471BC0FDAC99FF9EA9E1CDD3F350026}@192.168.1.1:21/data";
其实
vfs
中执行这个加密的操作也很简单,只有下面两句代码:
Cryptor cryptor = CryptorFactory.getCryptor();
String pwdEncrypt = cryptor.encrypt(yourpassword);
3.
通过
FileSystemOptions
方式
除了在
uri
中显示指定认证信息之外还可以通过
FileSystemOptions
来完成。
StaticUserAuthenticator auth = new StaticUserAuthenticator("username", "password", null);
FileSystemOptions opts = new FileSystemOptions(); DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(opts, auth);
FileObject fo = VFS.getManager().resolveFile("ftp://192.168.1.1:21/data", opts);
但是这种方式指定密码时就不能支持密文的方式了。
4.
一点小技巧
通过
VFS.getManager()
方式获得的
FileSystemManager
对应的实现类为
StandardFileSystemManager
,在其抽象基类中有一个
setBaseFile
()
方法可以设置本次会话的根目录,这样在文件操作的
uri
中就可以只设定相对于该
basefile
的相对路径了。
Set
the base file using
setBaseFile()
. The base file is used to resolve relative
URI passed to
resolveFile()
. This step is optional.
分享到:
相关推荐
标题中的"commons-logging-1.2.jar"和"commons-vfs-2.2.jar"是两个Java库的文件名,分别代表Apache Commons Logging和Apache Commons VFS(Virtual File System)的不同版本。这两个库在Java应用程序开发中经常被...
`commons-vfs-2.0.zip`包含了Apache Commons VFS 2.0版本的所有相关jar包,方便用户下载和使用。这个版本相较于早期版本可能引入了更多的改进、修复和新特性,旨在提高性能和稳定性,并提供更好的跨平台支持。 ...
9. **源码分析**:通过阅读"commons-vfs-1.0-src"的源码,我们可以学习到如何设计和实现一个模块化的文件系统框架,以及如何优雅地处理异构资源的抽象和访问。 10. **实战应用**:Apache Commons VFS常被用于Web...
接下来,`commons-vfs2-2.2.jar`代表Apache Commons VFS(Virtual File System),这是一个强大的文件系统抽象层。它允许开发者通过单一的API访问各种不同的文件系统,包括本地文件系统、FTP、HTTP、SFTP等。Commons...
apache 虚拟文件系统 vfs jar包~~~~
通过VFS对文件进行一些操作,包括写入、读取文件,判断文件是否可读可写等使用2.0版本来实现。
"commons-vfs-1.0.zip"是一个包含Apache Commons VFS 1.0版本的压缩包,便于用户下载和共享。 Apache Commons VFS的核心概念是虚拟文件系统(VFS),它将各种不同类型的文件系统抽象成统一的接口,通过这个接口,...
在`commons-vfs-1.0`中,`FileProvider`是一个关键接口,它实现了对特定文件系统类型的访问。例如,`DefaultFileProvider`处理本地文件系统,而`FtpFileProvider`则处理FTP文件系统。每个`FileProvider`都对应一种或...
jar包,亲测可用
总之,Apache Commons VFS-2.1的源码是学习和理解文件系统抽象层如何工作的宝贵资源。通过深入研究源码,开发者可以学习到如何设计和实现一个跨平台、跨文件系统的解决方案,以及如何处理各种文件系统特有的挑战。...
commons-attributes-2.2-src.zip commons-attributes-2.2.zip commons-beanutils-1.8.0-BETA-src...validator-1.3.1-src.zip<br>commons-validator-1.3.1.zip<br>commons-vfs-1.0-src.zip<br>commons-vfs-1.0.zip
commons-lang-2.6.jar包commons-lang-2.6.jar包commons-lang-2.6.jar包commons-lang-2.6.jar包commons-lang-2.6.jar包加源码
离线安装包,亲测可用
commons-attributes-2.2-src.zip commons-attributes-2.2.zip commons-beanutils-1.8.0-BETA-src...validator-1.3.1-src.zip<br>commons-validator-1.3.1.zip<br>commons-vfs-1.0-src.zip<br>commons-vfs-1.0.zip
Apache Commons VFS项目 Apache Commons VFS是一个虚拟文件系统库。 文献资料 可以在上找到更多信息。 可以浏览 。 与Apache Commons VFS Project的用法有关的问题应张贴到。 在哪里可以获得最新版本? 您可以从...
Maven坐标:org.apache.commons:commons-pool2:2.9.0; 标签:apache、commons、pool2、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...
9. **FileWatcher**: 虽然不直接在`commons-io`库中,但在Apache Commons中的`vfs`模块中,有一个`FileWatcher`接口,它可以监听文件系统的变化,这对于实时监控文件变化的应用程序非常有用。 10. **IOException**:...
离线安装包,亲测可用
适用于VFS(Apache Commons虚拟文件系统)的Amazon S3驱动程序最新分支4.xx如何将依赖项添加到您的Maven构建中对于具有嵌入式AWS开发工具包的工件(引导的最简单方法) <dependency> <groupId>...
离线安装包,亲测可用