AWS-S3
view release on metacpan or search on metacpan
lib/AWS/S3/HTTPRequest.pm view on Meta::CPAN
package AWS::S3::HTTPRequest;
use Moose;
use Moose::Util::TypeConstraints;
use AWS::S3::Signer;
use HTTP::Headers;
use URI;
with 'AWS::S3::Roles::Bucket';
my $METADATA_PREFIX = 'x-amz-meta-';
my $AMAZON_HEADER_PREFIX = 'x-amz-';
enum 'HTTPMethod' => [qw( HEAD GET PUT POST DELETE )];
has 's3' => (
is => 'ro',
required => 1,
isa => 'AWS::S3',
);
has 'method' => (
is => 'ro',
required => 1,
isa => 'HTTPMethod'
);
has 'path' => (
is => 'ro',
required => 1,
isa => 'Str',
);
class_type( 'HTTP::Headers' );
coerce 'HTTP::Headers'
=> from 'HashRef'
=> via { my $h = HTTP::Headers->new( %$_ ) };
has 'headers' => (
is => 'ro',
required => 1,
isa => 'HTTP::Headers',
lazy => 1,
default => sub { HTTP::Headers->new() },
coerce => 1,
);
has 'content' => (
is => 'ro',
required => 1,
isa => 'Str|ScalarRef|CodeRef',
default => '',
);
has 'metadata' => (
is => 'ro',
required => 1,
isa => 'HashRef',
default => sub { {} },
);
has 'contenttype' => (
is => 'ro',
required => 0,
isa => 'Str',
);
# Make the HTTP::Request object:
sub http_request {
my $s = shift;
my $method = $s->method;
my $headers = $s->headers;
my $content = $s->content;
( run in 0.475 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )