Léon Brocard


Net::Amazon::S3::Client::GPG - Use GPG with Amazon S3 - Simple Storage Service


  use Net::Amazon::S3;
  my $aws_access_key_id     = 'fill me in';
  my $aws_secret_access_key = 'fill me in too';
  my $gpg_recipient         = 'fill@meintoo.com';
  my $gpg_passphrase        = 'secret!';

  my $s3 = Net::Amazon::S3->new(
      aws_access_key_id     => $aws_access_key_id,
      aws_secret_access_key => $aws_secret_access_key,
      retry                 => 1,

  my $gnupg = GnuPG::Interface->new();
      armor            => 0,
      recipients       => [$gpg_recipient],
      meta_interactive => 0,

  my $client = Net::Amazon::S3::Client::GPG->new(
      s3              => $s3,
      gnupg_interface => $gnupg,
      passphrase      => $gpg_passphrase,

  # then can call $object->gpg_get, $object->gpg_get_filename,
  # $object->gpg_put, $object->$gpg_put_filename on
  # Net::Amazon::S3::Client::Object objects.


Net::Amazon::S3 provides a simple interface to Amazon's Simple Storage Service. GnuPG::Interface provides a Perl interface to GNU Privacy Guard, an implementation of the OpenPGP standard. Net::Amazon::S3 can use SSL so that data can not be intercepted while in transit over the internet, but Amazon recommends that "users can encrypt their data before it is uploaded to Amazon S3 so that the data cannot be accessed or tampered with by unauthorized parties".

This module adds methods to Net::Amazon::S3::Client::Object to get and put values and files while encrypting and decrypting them.


Leon Brocard <acme@astray.com>.


Copyright (C) 2010, Leon Brocard


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


Net::Amazon::S3, Net::Amazon::S3::Client, Net::Amazon::Client::Bucket, Net::Amazon::S3::Client::Object, GnuPG::Interface.