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 )