Net-Amazon-S3-Policy version 0.1.0

Net::Amazon::S3::Policy gives you an object-oriented interface to man‐
age policies for Amazon S3 HTTP POST uploads.

Amazon S3 relies upon either a REST interface (see Net::Amazon::S3) or
a SOAP one; as an added service, it is possible to give access to the
upload of resources using HTTP POSTs that do not involve using any of
these two interfaces, but a single HTML FORM. The rules you have to
follow are explained in the Amazon S3 Developer Guide.

More or less, it boils down to the following:

·   if the target bucket is not writeable by the anonymous group,
   you’ll need to set an access policy;

·   almost every field in the HTML FORM that will be used to build up
   the HTTP POST message by the browser needs to be included into a
   policy, and the policy has to be sent along within the HTTP POST

·   together with the policy, also the bucket owner’s AWS ID (the pub‐
   lic one) has to be sent, together with a digital signature of the
   policy that has to be created using the bucket owner’s AWS secret
   key.

This module lets you manage the build-up of a policy document, provid‐
ing you with tools to get the Base64 encoding of the resulting JSON
policy document, and to calculate the Base64 encoding of the signature.
See "Example" for a complete example of how to do this.

In addition to policy synthesis, the module is also capable of parsing
some policy (base64-encoded or not, but in JSON format). This shouldn’t
be a need in general... possibly for debug reasons.

AVAILABILITY

You can either grab the module from CPAN, or see what's going on at
http://repo.or.cz/w/Net-Amazon-S3-Policy.git


INSTALLATION

To install this module, run the following commands:

	perl Makefile.PL
	make
	make test
	make install

Alternatively, to install with Module::Build, you can use the following commands:

	perl Build.PL
	./Build
	./Build test
	./Build install


DEPENDENCIES

version and JSON.

COPYRIGHT AND LICENCE

Copyright (C) 2008, Flavio Poletti

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