Apache2-S3
view release on metacpan or search on metacpan
lib/Apache2/S3.pm view on Meta::CPAN
my ($keyId, $keySecret, $path, $sub) =
map $r->notes->get(__PACKAGE__."::s3_$_"), qw(id secret path sub);
$h->{'Date'} = POSIX::strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime);
$h->{'Authorization'} = _signature $keyId, $keySecret, join "\n",
$r->method,
$h->{'Content-MD5'} || "",
$h->{'Content-Type'} || "",
$h->{'Date'},
uri_escape($path, $ESCAPE).($sub ? "?$sub" : "");
return Apache2::Const::OK;
}
sub _xml_get_tags
{
my ($tree, $tag, @tags) = @_;
my @ret;
for (my $i = @$tree % 2; $i < @$tree; $i += 2)
{
lib/Apache2/S3.pm view on Meta::CPAN
/^(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)(?:\.\d+)?Z$/
? timegm($6, $5, $4, $3, $2-1, $1) : 0,
}, _xml_get_tags($list, 'Contents');
my $ret = "";
$ret .= qq|<html><body><pre>|;
$ret .= qq|<a href="|.("$stripped$prefix" =~ m|^(.*/)[^/]+/$| ? $1 : "/").qq|">Parent Directory</a>\n|;
$ret .= qq|<a href="?marker=|.(uri_escape $next_marker).qq|">Next Page</a>\n|
if $is_truncated and $next_marker;
$ret .= sprintf(qq|<a href="%s">%s</a>%s %-18s %s\n|,
$stripped.uri_escape($_->{Name}, $ESCAPE),
HTML::Entities::encode($_->{DisplayName}),
" "x(87 - length $_->{DisplayName}),
$_->{LastModified} ? strftime("%d-%b-%Y %H:%M", localtime($_->{LastModified})) : "-",
$_->{Size} ? APR::String::format_size($_->{Size}) : "")
foreach map {
$_->{DisplayName} = $_->{Name} =~ m|([^/]+)/?$| ? $1 : $_->{Name};
$_;
} @dirs, @files;
$ret .= qq|</pre></body></html>|;
( run in 0.777 second using v1.01-cache-2.11-cpan-c21f80fb71c )