Backblaze-B2
view release on metacpan or search on metacpan
lib/Backblaze/B2/v1/AnyEvent.pm view on Meta::CPAN
# AnyEvent->condvar
# which performs the real task.
# Actually, this now returns just a Promise
sub request {
my( $self, %options) = @_;
$options{ method } ||= 'GET';
#my $completed = delete $options{ cb };
my $method = delete $options{ method };
my $endpoint = delete $options{ api_endpoint };
my $headers = delete $options{ headers } || {};
$headers = { $self->get_headers, %$headers };
my $body = delete $options{ _body };
my $url;
if( ! $options{url} ) {
croak "Don't know the api_endpoint for the request"
unless $endpoint;
$url = URI->new( join( "/b2api/v1/",
$self->apiUrl,
$endpoint)
);
} else {
$url = delete $options{ url };
$url = URI->new( $url )
if( ! ref $url );
};
for my $k ( keys %options ) {
my $v = $options{ $k };
$url->query_param_append($k, $v);
};
lib/Backblaze/B2/v1/AnyEvent.pm view on Meta::CPAN
=cut
sub create_bucket {
my( $self, %options ) = @_;
croak "Need a bucket name"
unless defined $options{ bucketName };
$options{ accountId } ||= $self->accountId;
$options{ bucketType } ||= 'allPrivate'; # let's be defensive here...
$self->json_request(api_endpoint => 'b2_create_bucket',
accountId => $options{ accountId },
bucketName => $options{ bucketName },
bucketType => $options{ bucketType },
%options
)
}
=head2 C<< $b2->delete_bucket >>
$b2->delete_bucket(
lib/Backblaze/B2/v1/AnyEvent.pm view on Meta::CPAN
=cut
sub delete_bucket {
my( $self, %options ) = @_;
croak "Need a bucketId"
unless defined $options{ bucketId };
$options{ accountId } ||= $self->accountId;
my $res = AnyEvent->condvar;
$self->json_request(api_endpoint => 'b2_delete_bucket',
accountId => $options{ accountId },
bucketId => $options{ bucketId },
%options
);
}
=head2 C<< $b2->list_buckets >>
$b2->list_buckets();
lib/Backblaze/B2/v1/AnyEvent.pm view on Meta::CPAN
Returns the error status, the message and the payload.
=cut
sub list_buckets {
my( $self, %options ) = @_;
$options{ accountId } ||= $self->accountId;
$self->json_request(api_endpoint => 'b2_list_buckets',
accountId => $options{ accountId },
%options
)
}
=head2 C<< $b2->get_upload_url >>
my $upload_handle = $b2->get_upload_url();
$b2->upload_file( file => $file, handle => $upload_handle );
L<https://www.backblaze.com/b2/docs/b2_get_upload_url.html>
=cut
sub get_upload_url {
my( $self, %options ) = @_;
croak "Need a bucketId"
unless defined $options{ bucketId };
$self->json_request(api_endpoint => 'b2_get_upload_url',
%options
)
}
=head2 C<< $b2->upload_file >>
my $upload_handle = $b2->get_upload_url();
$b2->upload_file(
file => $file,
handle => $upload_handle
lib/Backblaze/B2/v1/AnyEvent.pm view on Meta::CPAN
=cut
sub list_file_names {
my( $self, %options ) = @_;
croak "Need a bucket id"
unless defined $options{ bucketId };
$self->json_request(
api_endpoint => 'b2_list_file_names',
%options
);
}
=head2 C<< $b2->list_all_file_names >>
my $list = $b2->list_all_file_names(
startFileName => $startFileName,
maxFileCount => 1000, # maximum per round
bucketId => ...,
lib/Backblaze/B2/v1/AnyEvent.pm view on Meta::CPAN
my( $self, %options ) = @_;
croak "Need a bucket id"
unless defined $options{ bucketId };
croak "Need a file name prefix"
unless defined $options{ fileNamePrefix };
croak "Need a duration for the token"
unless defined $options{ validDurationInSeconds };
$self->json_request(
api_endpoint => 'b2_get_download_authorization',
%options
);
}
1;
( run in 0.986 second using v1.01-cache-2.11-cpan-49f99fa48dc )