Amazon-S3
view release on metacpan or search on metacpan
## error
The decoded XML string as a hash object of the last error.
## last\_response
Returns the last [HTTP::Response](https://metacpan.org/pod/HTTP%3A%3AResponse) object.
## last\_request
Returns the last [HTTP::Request](https://metacpan.org/pod/HTTP%3A%3ARequest) object.
## level
Set the logging level.
default: error
## turn\_on\_special\_retry
Called to add extra retry codes if retry has been set
lib/Amazon/S3.pm view on Meta::CPAN
########################################################################
my ($self) = @_;
my $region = $ENV{AWS_REGION} || $ENV{AWS_DEFAULT_REGION};
return $region
if $region;
my $url = $AWS_METADATA_BASE_URL . 'placement/availability-zone';
my $request = HTTP::Request->new( 'GET', $url );
my $ua = LWP::UserAgent->new;
$ua->timeout(0);
my $response = eval { return $ua->request($request); };
if ( $response && $response->is_success ) {
if ( $response->content =~ /\A([[:lower:]]+[-][[:lower:]]+[-]\d+)/xsm ) {
$region = $1;
}
lib/Amazon/S3.pm view on Meta::CPAN
$bucket, $host, $path, $port, $EVAL_ERROR
if !$url || $EVAL_ERROR;
}
else {
$url = sprintf '%s://%s.%s%s%s', $protocol, $bucket, $host, $path,
$query_string;
}
}
my $request = HTTP::Request->new( $method, $url, $http_headers );
$self->last_request($request);
if ($data) {
$request->content($data);
}
$self->signer->region($region); # always set regional endpoint for signing
$self->signer->sign($request);
return $request;
}
# $self->_send_request($HTTP::Request)
# $self->_send_request(@params_to_make_request)
# $self->_send_request($params_to_make_request)
########################################################################
sub _send_request {
########################################################################
my ( $self, @args ) = @_;
my $logger = $self->get_logger;
$logger->trace(
sub {
return Dumper( [ args => \@args ] );
},
);
my $keep_root = $FALSE;
my $request = eval {
return $args[0]
if ref( $args[0] ) =~ /HTTP::Request/xsm;
return {@args}
if @args > 1 && !@args % 2;
return $args[0]
if ref $args[0];
croak 'invalid argument to _send_request';
};
if ( ref($request) !~ /HTTP::Request/xsm ) {
$keep_root = delete $request->{keep_root};
$request = $self->_make_request($request);
}
my $response = $self->_do_http($request);
$self->last_response($response);
$logger->debug(
lib/Amazon/S3.pm view on Meta::CPAN
#
# This is the necessary to find the region for a specific bucket
# and set the signer object to use that region when signing requests
########################################################################
sub adjust_region {
########################################################################
my ( $self, $bucket, $called_from_redirect ) = @_;
my $url = sprintf 'https://%s.%s', $bucket, $self->host;
my $request = HTTP::Request->new( GET => $url );
$self->{'signer'}->sign($request);
# We have to turn off our special retry since this will deliberately
# trigger that code
$self->turn_off_special_retry();
# If the bucket name has a period in it, the certificate validation
# will fail since it will expect a certificate for a subdomain.
# Setting it to verify against the expected host guards against
lib/Amazon/S3.pm view on Meta::CPAN
=head2 error
The decoded XML string as a hash object of the last error.
=head2 last_response
Returns the last L<HTTP::Response> object.
=head2 last_request
Returns the last L<HTTP::Request> object.
=head2 level
Set the logging level.
default: error
=head2 turn_on_special_retry
Called to add extra retry codes if retry has been set
}
# see more docs in Amazon::S3::Bucket
# local test methods
########################################################################
sub is_request_response_code {
########################################################################
my ( $url, $code, $message ) = @_;
my $request = HTTP::Request->new( 'GET', $url );
my $response = $s3->ua->request($request);
is( $response->code, $code, $message )
or diag( Dumper( [ response_code => $response ] ) );
return;
}
########################################################################
( run in 2.033 seconds using v1.01-cache-2.11-cpan-437f7b0c052 )