FileFM

Dead simple file uploads and downloads from/to:

  • HTTP
  • Rackspace Cloudfiles
  • Openstack Swift

API

Downloadinf files

Swift

FileFM.download "swift://swift-server.com/container1/foofile", 
                :progressbar => true,
                :secure => false,
                :destination => '/tmp/myfoofile',
                :username => 'admin:admin',
                :password => 'admin'

Cloudfiles

FileFM.download "cloudfiles://container1/foofile", 
                :progressbar => true,
                :destination => '/tmp/myfoofile',
                :username => 'foo-user',
                :password => 'RACKSPACE-API-KEY-HERE'

HTTP

FileFM.download "http://imaginary-server/foo-linux.iso", 
                :progressbar => true,
                :destination => '/tmp/ubuntu.iso'

Uploading files

Swift

FileFM.upload "myfoo-file.txt, 
              "swift://swift-server.com/container1/myfoo-file.txt", 
              :username => "admin:admin",
              :password => "admin",
              :secure => false,           # no SSL
              :progressbar => true        # print progress while uploading

Using v2.0 authentication style (keystone)

FileFM::Uploaders::Swift.upload("/home/user/my-file", 
                                "swift://swift.myserver.com/container1/my-file", 
                                { 
                                  :username => "tenant:username",
                                  :password => "secret",
                                  :auth_url => "http://my-keystone-server:5000/v2.0/tokens", 
                                  :progressbar => true
                                })

Cloudfiles

FileFM.upload   "myfoo-file.txt",
                "cloudfiles://container1/foofile", 
                :progressbar => true,
                :username => 'foo-user',
                :password => 'RACKSPACE-API-KEY-HERE'

Command line

Swift

filefm upload --insecure --user admin:admin \
              --password secret \
              /home/user/my-file \
              swift://server/container1/my-file

Using v2.0 authentication style (keystone)

filefm upload -A http://my-keystone-server:5000/v2.0/tokens \
              --insecure -u admin:admin -p ADMIN \
              /path/to/my/file \
              swift://swift.myserver.com/container1/my-file

Rackspace

filefm upload --user <rackspace-username> \
              --password <RACKSPACE_API> \
              <path-to-file> \
              cloudfiles://container1/foo.tmp

HTTP

filefm download http://my-server.com/my-big-file

DEBUGGING ENABLED

DEBUG=yes filefm upload --insecure --user admin:admin \
              --password secret \
              /home/user/my-file \
              swift://server/container1/my-file

Copyright

Copyright (c) 2012 Sergio Rubio. See LICENSE.txt for further details.