Brackup
view release on metacpan or search on metacpan
lib/Brackup/Target/GoogleAppEngine.pm view on Meta::CPAN
package Brackup::Target::GoogleAppEngine;
use strict;
use warnings;
use base 'Brackup::Target';
use Carp qw(croak);
use LWP::ConnCache;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Request::Common;
# fields in object:
# user_email
# password
# url
sub new {
my ($class, $confsec) = @_;
my $self = $class->SUPER::new($confsec);
lib/Brackup/Target/GoogleAppEngine.pm view on Meta::CPAN
my $for_backup = shift || 0;
if (!$for_backup && @{$self->{upload_urls}}) {
my $url = shift @{$self->{upload_urls}};
die "Bogus URL: $url" unless $url =~ /^http/;
return $url;
}
my $count = $for_backup ? 1 : 10;
my $req = HTTP::Request->new("GET",
"$self->{url}/get_upload_urls?" .
"for_backup=$for_backup&" .
"count=$count&" .
"password=" . _eurl($self->{password}) . "&" .
"user_email=" . $self->{user_email});
my $res = $self->{ua}->request($req);
if ($res->is_success) {
$self->{upload_urls} = [ split(/\s*\n\s*/, $res->content) ];
} else {
die "Failed to get upload URLs: " . $res->status_line . "\n" . $res->content;
lib/Brackup/Target/GoogleAppEngine.pm view on Meta::CPAN
or die;
my $filename = $dig;
$filename =~ s/:/_/;
$filename .= ".chunk";
print "Storing chunk: $dig\n";
my $content = do { local $/; <$chunkref> };
my $req = HTTP::Request::Common::POST($upload_url,
Content_Type => 'form-data',
Content => [
"password" => $self->{password},
"user_email" => $self->{user_email},
"algo_digest" => $dig,
"size" => $blen,
"file" => [ undef, $filename,
"Content-Type" => "x-danga/brackup-chunk",
Content => $content ]
]);
lib/Brackup/Target/GoogleAppEngine.pm view on Meta::CPAN
my ($self, $name, $fh, $meta) = @_;
$meta ||= {};
print "Storing backup: $name\n";
my $upload_url = $self->_get_upload_url(1) # for backup
or die;
my $content = do { local $/; <$fh> };
my $req = HTTP::Request::Common::POST($upload_url,
Content_Type => 'form-data',
Content => [
"password" => $self->{password},
"user_email" => $self->{user_email},
"encrypted" => $meta->{is_encrypted} ? 1 : 0,
"title" => $name,
"file" => [ undef, $name,
"Content-Type" => "x-danga/brackup-backup",
Content => $content ]
]);
( run in 0.363 second using v1.01-cache-2.11-cpan-de7293f3b23 )