This page shows some examples to configure the classpath and use the VFS Example Shell.
All examples expect to be started from within the Apache Commons VFS source directory (refering to build artifacts as well as external dependencies in a local maven repository). Linux/Unix commands are marked with {{$ }} prompt, for sample Windows command you see a {{C:vfs> }} prompt. Commands entered into the VFS Example Shell are marked with the {{> }} prompt.
Enabling the SMB provider from the sandbox:
$ REP=~/.m2/repository $ LIBS=$REP/commons-logging/commons-logging/1.2/commons-logging-1.2.jar $ LIBS=$LIBS:$REP/jcifs/jcifs/0.8.3/jcifs-0.8.3.jar $ LIBS=$LIBS:core/target/commons-vfs2-2.1.jar:examples/target/commons-vfs2-examples-2.1.jar:sandbox/target/commons-VFS2-sandbox-2.1.jar $ java -cp $LIBS org.apache.commons.vfs2.example.Shell VFS Shell 2.1 > info Info about default manager "org.apache.commons.vfs2.impl.StandardFileSystemManager": Provider Schemes: [res, ram, file, tmp, smb] Virtual Schemes: [gz, zip, war, par, ear, jar, sar, ejb3] > ls smb://Domain\User:PASSWORD@host/Users/ Administrator/ All Users/ User/ desktop.ini |
Using the ftp(s) provider:
C:vfs> set REP=\Users\USERNAME\.m2\repository C:vfs> set LIBS=%REP%\commons-logging\commons-logging\1.2\commons-logging-1.2.jar C:vfs> set LIBS=%LIBS%;%REP%\commons-net\commons-net\2.2\commons-net-2.2.jar C:vfs> set LIBS=%LIBS%;core\target\commons-vfs2-2.1.jar;examples/target/commons-vfs2-examples-2.1.jar C:vfs> java -cp $LIBS org.apache.commons.vfs2.example.Shell VFS Shell 2.1 > info Info about default manager "org.apache.commons.vfs2.impl.StandardFileSystemManager": Provider Schemes: [res, ram, ftps, file, ftp, tmp] Virtual Schemes: [gz, zip, war, par, ear, jar, sar, ejb3] > ls ftp://ftp.fau.de/apache/commons/vfs/ Contents of ftp://ftp.fau.de/apache/commons/vfs HEADER.html README.html RELEASE_NOTES.txt binaries/ source/ |
Loading resources from the classpath:
VFS Shell 2.1 > ls -R res:META-INF/maven/ Contents of jar:file:///C:/ws/asf/commons-vfs2-project/core/target/commons-vfs2-2.1-SNAPSHOT.jar!/META-INF/maven org.apache.commons/ commons-vfs2/ pom.properties pom.xml > cat res:META-INF/maven/org.apache.commons/commons-vfs2/pom.properties #Generated by Maven #Fri Jan 09 02:48:03 CET 2015 version=2.1-SNAPSHOT groupId=org.apache.commons artifactId=commons-vfs2 |
For http(s) (and more general URIs):
C:vfs> set LIBS=%REP%\commons-logging\commons-logging\1.2\commons-logging-1.2.jar C:vfs> set LIBS=%LIBS%;%REP%\org\apache\commons\httpclient;%REP%\commons-httpclient\commons-httpclient\3.1\commons-httpclient-3.1.jar C:vfs> set LIBS=%LIBS%;%REP%\commons-codec\commons-codec\1.2\commons-codec-1.2.jar C:vfs> set LIBS=%LIBS%;core\target\commons-vfs2-2.1.jar;examples/target/commons-vfs2-examples-2.1.jar C:vfs> java -cp $LIBS org.apache.commons.vfs2.example.Shell VFS Shell 2.1 > cat https://www.apache.org/robots.txt User-agent: * Disallow: /websrc Crawl-Delay: 4 |
The following example describes how to set up a file in HDFS and how to access it with the VFS Example Shell:
$ HADOOP_HOME=/home/user/hadoop-2.6.0 $ HADOOP_CLASSPATH=`$HADOOP_HOME/bin/hadoop classpath` $ $HADOOP_HOME/bin/hadoop fs -mkdir /vfs-test $ $HADOOP_HOME/bin/hadoop fs -copyFromLocal /tmp/test.txt /vfs-test/text.txt $ $HADOOP_HOME/bin/hadoop fs -ls -R / drwxr-xr-x - user supergroup 0 2015-01-09 21:56 /vfs-test -rw-r--r-- 3 user supergroup 15 2015-01-09 21:56 /vfs-test/text.txt $ REP=~/.m2/repository $ LIBS=$REP/commons-logging/commons-logging/1.2/commons-logging-1.2.jar $ LIBS=$LIBS:core/target/commons-vfs2-2.1-SNAPSHOT.jar:examples/target/commons-vfs2-examples-2.1-SNAPSHOT.jar $ java -cp $LIBS:$HADOOP_CLASSPATH org.apache.commons.vfs2.example.Shell 15/01/09 22:01:44 INFO impl.StandardFileSystemManager: Using "/tmp/vfs_cache" as temporary files store. VFS Shell 2.1-SNAPSHOT > info Default manager: "org.apache.commons.vfs2.impl.StandardFileSystemManager" version 2.1-SNAPSHOT Provider Schemes: [https, res, gz, hdfs, sftp, ftps, ram, http, file, ftp, tmp, bz2] Virtual Schemes: [zip, war, par, ear, jar, sar, ejb3, tar, tbz2, tgz] > info hdfs Provider Info for scheme "hdfs": capabilities: [GET_TYPE, READ_CONTENT, URI, GET_LAST_MODIFIED, ATTRIBUTES, RANDOM_ACCESS_READ, DIRECTORY_READ_CONTENT, LIST_CHILDREN] > ls hdfs://server:8020/vfs-test/ 15/01/09 22:02:06 INFO Configuration.deprecation: fs.default.name is deprecated. Instead, use fs.defaultFS 15/01/09 22:02:06 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Contents of hdfs://server:8020/vfs-test text.txt > cat hdfs://server:8020/vfs-test/text.txt This is a test |