The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Net::Google::Storage - Access the Google Storage JSON API (currently experimental).

VERSION

version 0.2.0

SYNOPSIS

  my $gs = Net::Google::Storage->new(
    projectId => $projectId,
    %agent_args
  );

See Net::Google::Storage::Agent for a decription of %agent_args.

  my $buckets = $gs->list_buckets();

  my $bucket = $gs->get_bucket($bucket_name);

  my $new_bucket = $gs->insert_bucket({id => $new_bucket_name});

  $gs->delete_bucket($bucket_name);

  my $objects = $gs->list_objects($bucket_name);

  my $object = $gs->get_object(bucket => $bucket_name, object => $object_name);

  $gs->download_object(bucket => $bucket_name, object => $object_name, filename => $filename);

  my $object = $gs->insert_object(bucket => $bucket_name, object => {name => $object_name}, filename => $filename);

  $gs->delete_object(bucket => $bucket_name, object => $object_name);

DESCRIPTION

Net::Google::Storage is a library for interacting with the JSON version of the Google Storage API, which is currently (as at 2012-09-17) marked as experimental.

This module does not (yet) cover the entire surface of the API, but it is a decent attempt at providing the most important functionality.

See https://developers.google.com/storage/docs/json_api/ for documentation of the API itself.

ATTRIBUTES

projectId

Google's identifier of the project you are accessing. Available from the API Console.

METHODS

new

Constructs a shiny new Net::Google::Storage object. Arguments include projectId and the attributes of Net::Google::Storage::Agent

list_buckets

Returns an arrayref of Net::Google::Storage::Bucket objects for the current projectId.

get_bucket

Takes a bucket name as the only argument, returns the matching Net::Google::Storage::Bucket object or undef if nothing matches.

insert_bucket

Takes some bucket metadata as the only argument (could be as simple as {id => $bucket_name}), creates a new bucket and returns the matching Net::Google::Storage::Bucket object.

delete_bucket

Takes a bucket name as the only argument, deletes the bucket.

list_objects

Takes a bucket name as the only argument, returns an arrayref of Net::Google::Storage::Object objects.

get_object

Takes a hash (not hashref) of arguments with keys: bucket and object and returns the matching Net::Google::Storage::Object object (or undef if no match was found).

download_object

Takes a hash (not hashref) of arguments with keys: bucket, object, and filename and downloads the matching object as the desired filename.

Returns undef if the object doesn't exist, true for success.

insert_object

Takes a hash of arguments with keys: bucket, filename and object where object contains the necessary metadata to upload the file, which is, at minimum, the name field.

delete_object

Takes a hash of arguments with keys: bucket and object and deletes the matching object.

AUTHOR

Glenn Fowler <cebjyre@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2012 by Glenn Fowler.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.