NAME
   Net::Mosso::CloudFiles - Interface to Mosso CloudFiles service

SYNOPSIS
     use Net::Mosso::CloudFiles;
     use Perl6::Say;

     my $cloudfiles = Net::Mosso::CloudFiles->new(
         user => 'myusername',
         key  => 'mysecretkey',
     );

     # list all containers
     my @containers = $cloudfiles->containers;
     foreach my $container (@containers) {
         say 'have container ' . $container->name;
     }

     # create a new container
     my $container = $cloudfiles->create_container('testing');

     # use an existing container
     my $existing_container = $cloudfiles->container('testing');

     my $total_bytes_used = $cloudfiles->total_bytes_used;
     say "used $total_bytes_used";

     my $object_count = $container->object_count;
     say "$object_count objects";

     my $bytes_used = $container->bytes_used;
     say "$bytes_used bytes";

     # returns a Data::Stream::Bulk object
     # as it may have to make multiple HTTP requests
     my @objects = $container->objects->all;
     foreach my $object (@objects) {
         say 'have object ' . $object->name;
         # also size, etag, content_type, last_modified
     }
     my @objects2 = $container->objects(prefix => 'dir/')->all;

     my $xxx = $container->object( name => 'XXX' );
     $xxx->put('this is the value');

     my $value = $xxx->get;
     say 'has size ' . $object->size;
     say 'has md5 ' . $object->etag;
     say 'has value ' . $object->value;
     say 'has last_modified ' . $object->last_modified;

     my $yyy = $container->object( name => 'YYY', content_type => 'text/plain' );
     $yyy->put_filename('README');

     $yyy->get_filename('README.downloaded');

     $object->delete;

     $container->delete;

DESCRIPTION
   This module provides a simple interface to the Mosso CloudFiles service.
   It is "Scalable, dynamic storage. Use as much or little as you want and
   only pay for what you use". Find out more at
   <http://cloud.rackspace.com/cloudfiles.jsp>.

   This is the first version of this module. The API will probably change
   and lots of documentation will be added.

TESTING
   Testing CloudFiles is a tricky thing. Mosso charges you a bit of money
   each time you use their service. And yes, testing counts as using.
   Because of this, this modules's test suite skips testing unless you set
   the following three environment variables, along the lines of:

     CLOUDFILES_EXPENSIVE_TESTS=1 CLOUDFILES_USER=username CLOUDFILES_KEY=15bf43... perl t/simple.t

   CLOUDFILES_EXPENSIVE_TESTS
       Set this to 1.

   CLOUDFILES_USER
   CLOUDFILES_KEY

AUTHOR
   Leon Brocard <[email protected]>.

COPYRIGHT
   Copyright (C) 2008-9, Leon Brocard

LICENSE
   This module is free software; you can redistribute it or modify it under
   the same terms as Perl itself.