Amazon-S3
view release on metacpan or search on metacpan
lib/Amazon/S3/Util.pm view on Meta::CPAN
package Amazon::S3::Util;
use strict;
use warnings;
use Amazon::S3::Constants qw(:all);
use Data::Dumper;
use Digest::MD5 qw(md5 md5_hex);
use Digest::MD5::File qw(file_md5 file_md5_hex);
use English qw(-no_match_vars);
use MIME::Base64;
use Scalar::Util qw(reftype);
use URI::Escape qw(uri_escape_utf8);
use XML::Simple;
use parent qw(Exporter);
our @EXPORT_OK = qw(
choose
create_query_string
create_grant_header
create_xml_request
create_api_uri
set_md5_header
urlencode
get_parameters
);
our $VERSION = '2.1.0';
our %EXPORT_TAGS;
$EXPORT_TAGS{all} = [@EXPORT_OK];
########################################################################
sub choose(&) { ## no critic
########################################################################
my $code = shift;
# Pass the correct context down to the block
if (wantarray) {
return $code->();
}
elsif ( defined wantarray ) {
return scalar $code->();
}
else {
$code->();
return;
}
}
########################################################################
sub urlencode {
########################################################################
my (@args) = @_;
my $unencoded = ref $args[0] ? $args[1] : $args[0];
## no critic (RequireInterpolation)
return uri_escape_utf8( $unencoded, '^A-Za-z0-9\-\._~\x2f' );
}
# hashref or list of key/value pairs
########################################################################
sub create_query_string {
########################################################################
( run in 1.420 second using v1.01-cache-2.11-cpan-80ec619307d )