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

Master branch: Build Status

Develop branch: Build Status

This code is based on http://code.google.com/p/vfs-s3/ 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/backup.zip");
FileObject src = fsManager.resolveFile(new File("/path/to/local/file.zip").getAbsolutePath());
dest.copyFrom(src, Selectors.SELECT_SELF);

Running the tests

Before run '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 backup.zip which is in the same directory.

Make sure that you never commit your credentials!