AWS-CloudFront

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN


Changelog for perl module AWS::CloudFront

2012-01-05      v0.003
  - Worked on the OriginAccessIdentity api.
  - Inching toward a 1.000 release.

2012-01-04      v0.002
  - Now we can create, fetch, update, list and delete distributions.
  - Still missing a lot of features, but it's moving ahead nicely.

2011-11-20      v0.001

inc/Module/Install/Fetch.pm  view on Meta::CPAN

    require Cwd;
    my $dir = Cwd::getcwd();
    chdir $args{local_dir} or return if exists $args{local_dir};

    if (eval { require LWP::Simple; 1 }) {
        LWP::Simple::mirror($args{url}, $file);
    }
    elsif (eval { require Net::FTP; 1 }) { eval {
        # use Net::FTP to get past firewall
        my $ftp = Net::FTP->new($host, Passive => 1, Timeout => 600);
        $ftp->login("anonymous", 'anonymous@example.com');
        $ftp->cwd($path);
        $ftp->binary;
        $ftp->get($file) or (warn("$!\n"), return);
        $ftp->quit;
    } }
    elsif (my $ftp = $self->can_run('ftp')) { eval {
        # no Net::FTP, fallback to ftp.exe
        require FileHandle;
        my $fh = FileHandle->new;

        local $SIG{CHLD} = 'IGNORE';
        unless ($fh->open("|$ftp -n")) {
            warn "Couldn't open ftp: $!\n";
            chdir $dir; return;
        }

        my @dialog = split(/\n/, <<"END_FTP");
open $host
user anonymous anonymous\@example.com
cd $path
binary
get $file $file
quit
END_FTP
        foreach (@dialog) { $fh->print("$_\n") }
        $fh->close;
    } }
    else {
        warn "No working 'ftp' program available!\n";
        chdir $dir; return;
    }

    unless (-f $file) {
        warn "Fetching failed: $@\n";
        chdir $dir; return;

lib/AWS/CloudFront/Request/CreateDistribution.pm  view on Meta::CPAN


  my $xml = <<"XML";
<?xml version="1.0" encoding="UTF-8"?>
<DistributionConfig xmlns="http://cloudfront.amazonaws.com/doc/2010-11-01/">
  @{[ $s->_origin_xml ]}
  <CallerReference>@{[ $s->CallerReference ]}</CallerReference>
  @{[ $s->CNAME ? q(<CNAME>) . $s->CNAME . q(</CNAME>) : '' ]}
  <Comment>@{[ $s->Comment ]}</Comment>
  <Enabled>@{[ $s->Enabled ? 'true' : 'false' ]}</Enabled>
  @{[ $s->DefaultRootObject ? ('<DefaultRootObject>' . $s->DefaultRootObject. '</DefaultRootObject>') : '' ]}
  @{[ $s->_logging_xml ]}
</DistributionConfig>
XML

  my $signer = AWS::CloudFront::Signer->new(
    cf  => $s->cf,
  );
  $s->_send_request( 'POST' => $uri => {
    Authorization => $signer->auth_header,
    'x-amz-date'  => $signer->date,
  }, $xml);

lib/AWS/CloudFront/Request/CreateDistribution.pm  view on Meta::CPAN

   <CustomOrigin>
      <DNSName>@{[ $s->Origin->DNSName ]}</DNSName>
      <HTTPPort>@{[ $s->Origin->HTTPPort ]}</HTTPPort>
      <OriginProtocolPolicy>@{[ $s->Origin->OriginProtocolPolicy ]}</OriginProtocolPolicy>
   </CustomOrigin>
XML
  }# end if()
}# end _origin_xml()


sub _logging_xml
{
  my $s = shift;
  return '' unless $s->Logging;
  
  return <<"XML";
   <Logging>
      <Bucket>@{[ $s->Logging->Bucket ]}.s3.amazonaws.com</Bucket>
      <Prefix>@{[ $s->Logging->Prefix ]}</Prefix>
   </Logging>
XML
}# end _logging_xml()

1;# return true:

lib/AWS/CloudFront/Request/UpdateDistribution.pm  view on Meta::CPAN


  my $xml = <<"XML";
<?xml version="1.0" encoding="UTF-8"?>
<DistributionConfig xmlns="http://cloudfront.amazonaws.com/doc/2010-11-01/">
  @{[ $s->_origin_xml ]}
  <CallerReference>@{[ $s->d->CallerReference ]}</CallerReference>
  @{[ $s->d->CNAME ? q(<CNAME>) . $s->d->CNAME . q(</CNAME>) : '' ]}
  <Comment>@{[ $s->d->Comment ]}</Comment>
  <Enabled>@{[ $s->d->Enabled ? 'true' : 'false' ]}</Enabled>
  @{[ $s->d->DefaultRootObject ? ('<DefaultRootObject>' . $s->d->efaultRootObject. '</DefaultRootObject>') : '' ]}
  @{[ $s->_logging_xml ]}
</DistributionConfig>
XML

  my $signer = AWS::CloudFront::Signer->new(
    cf  => $s->d->cf,
  );
  $s->_send_request( 'POST' => $uri => {
    Authorization => $signer->auth_header,
    'x-amz-date'  => $signer->date,
    'if-match'    => $etag,

lib/AWS/CloudFront/Request/UpdateDistribution.pm  view on Meta::CPAN

   <CustomOrigin>
      <DNSName>@{[ $s->d->Origin->DNSName ]}</DNSName>
      <HTTPPort>@{[ $s->d->Origin->HTTPPort ]}</HTTPPort>
      <OriginProtocolPolicy>@{[ $s->Origin->OriginProtocolPolicy ]}</OriginProtocolPolicy>
   </CustomOrigin>
XML
  }# end if()
}# end _origin_xml()


sub _logging_xml
{
  my $s = shift;
  return '' unless $s->d->Logging;
  
  return <<"XML";
   <Logging>
      <Bucket>@{[ $s->d->Logging->Bucket ]}.s3.amazonaws.com</Bucket>
      <Prefix>@{[ $s->d->Logging->Prefix ]}</Prefix>
   </Logging>
XML
}# end _logging_xml()

1;# return true:



( run in 1.450 second using v1.01-cache-2.11-cpan-49f99fa48dc )