AWS-CloudFront
view release on metacpan or search on metacpan
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 )