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 <acme@astray.com>.

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.

