Amazon S3 driver for Apache commons-vfs (Virtual File System) project
Java HTML Shell
Pull request Compare This branch is 15 commits ahead, 104 commits behind branch-2.4.x.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Amazon S3 driver for VFS (Apache Commons Virtual File System)

Master branch: Build Status

Develop branch: Build Status

This code is based on which is no longer supported.

It provides S3 support for Commons VFS.

Bootstraping with Spring

The class com.scoyo.commons.vfs.S3Util can be used to easily bootstrap the vfs-s3 provider with the Spring Framework:

<bean id="S3Initializer" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean" lazy-init="false">
	<property name="targetClass" value="com.scoyo.commons.vfs.S3Util" />
	<property name="targetMethod" value="initS3Provider" />
	<property name="arguments">

After that you can use VFS as with any other file system.

Sample Java Code

// Create bucket
FileSystemManager fsManager = VFS.getManager();
FileObject dir = fsManager.resolveFile("s3://simpe-bucket");

// Upload file to S3
FileObject dest = fsManager.resolveFile("s3://test-bucket/");
FileObject src = fsManager.resolveFile(new File("/path/to/local/").getAbsolutePath());
dest.copyFrom(src, Selectors.SELECT_SELF);

Running the tests

Tests are currently disabled by default, because one has to provide AWS credentials and a large binary file.

To run the tests you have to edit the file pom.xml and change this section:


Before running 'mvn test' you have to edit the file


Fill your AWS Key and Id. Then change the bucket name, because it must be globally unique (you can just add a suffix). Finally you have to provide the path to which is in the same directory.

Make sure that you never commit your credentials!