Skip to content

Corion/backblaze-b2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME

Backblaze::B2 - interface to the Backblaze B2 API

SYNOPSIS

METHODS

Backblaze::B2->new %options

  • version

    Allows you to specify the API version. The current default is v1, which corresponds to the Backblaze B2 API version 1 as documented at https://www.backblaze.com/b2/docs/.

SETUP

NAME

Backblaze::B2::v1 - Backblaze B2 API account

METHODS

->new %options

my $b2 = Backblaze::B2::v1->new(
    api => 'Backblaze::B2::v1::Synchronous', # the default
);

Creates a new instance. Depending on whether you pass in <Backblaze::B2::v1::Synchronous> or <Backblaze::B2::v1::AnyEvent>, you will get a synchronous or asynchronous API.

The synchronous API is what is documented here, as this is the most likely use case.

my @buckets = $b2->buckets();
for( @buckets ) {
    ...
}

The asynchronous API is identical to the synchronous API in spirit, but will return Promises . These condvars usually return two or more parameters upon completion:

my $results = $b2->buckets();
$results->then( sub{ 
    my( @buckets ) = @_;
    for( @buckets ) {
        ...
    }
}

The asynchronous API puts the burden of error handling into your code.

->buckets

my @buckets = $b2->buckets();

Returns a list of Backblaze::B2::Bucket objects associated with the B2 account.

->bucket_from_id

my @buckets = $b2->bucket_from_id(
    'deadbeef'
);

Returns a Backblaze::B2::Bucket object that has the given ID. It does not make an HTTP request to fetch the name and status of that bucket.

->create_bucket

my $new_bucket = $b2->create_bucket(
    name => 'my-new-bucket', # only /[A-Za-z0-9-]/i are allowed as bucket names
    type => 'allPrivate', # or allPublic
);

print sprintf "Created new bucket %s\n", $new_bucket->id;

Creates a new bucket and returns it.

->api

Returns the underlying API object

->files( %options )

Lists the files contained in this bucket

my @files = $bucket->files(
    startFileName => undef,
);

By default it returns only the first 1000 files, but see the allFiles parameter.

  • allFiles

      allFiles => 1
    

    Passing in a true value for this parameter will make as many API calls as necessary to fetch all files.

->upload_file( %options )

Uploads a file into this bucket, potentially creating a new file version.

my $new_file = $bucket->upload_file(
    file => 'some/local/file.txt',
    target_file => 'the/public/name.txt',
);
  • file

    Local name of the source file. This file will be loaded into memory in one go.

  • target_file

    Name of the file on the B2 API. Defaults to the local name.

    The target file name will have backslashes replaced by forward slashes to comply with the B2 API.

  • mime_type

    Content-type of the stored file. Defaults to autodetection by the B2 API.

  • content

    If you don't have the local content in a file on disk, you can pass the content in as a string.

  • mtime

    Time in miliseconds since the epoch to when the content was created. Defaults to the current time.

  • sha1

    Hexdigest of the SHA1 of the content. If this is missing, the SHA1 will be calculated upon upload.

->download_file_by_name( %options )

Downloads a file from this bucket by name:

my $content = $bucket->download_file_by_name(
    fileName => 'the/public/name.txt',
);

This saves you searching through the list of existing files if you already know the filename.

->get_download_authorization( %options )

Downloads a file from this bucket by name:

my $authToken = $bucket->get_download_authorization(
    fileNamePrefix => '/members/downloads/',
    validDurationInSeconds => 300, # five minutes
);

This returns an authorization token that can download files with the given prefix.

->api

Returns the underlying API object

->files( %options )

Lists the files contained in this bucket

my @files = $bucket->files(
    startFileName => undef,
);

By default it returns only the first 1000 files, but see the allFiles parameter.

  • allFiles

      allFiles => 1
    

    Passing in a true value for this parameter will make as many API calls as necessary to fetch all files.

->upload_file( %options )

Uploads a file into this bucket, potentially creating a new file version.

my $new_file = $bucket->upload_file(
    file => 'some/local/file.txt',
    target_file => 'the/public/name.txt',
);
  • file

    Local name of the source file. This file will be loaded into memory in one go.

  • target_file

    Name of the file on the B2 API. Defaults to the local name.

    The target file name will have backslashes replaced by forward slashes to comply with the B2 API.

  • mime_type

    Content-type of the stored file. Defaults to autodetection by the B2 API.

  • content

    If you don't have the local content in a file on disk, you can pass the content in as a string.

  • mtime

    Time in miliseconds since the epoch to when the content was created. Defaults to the current time.

  • sha1

    Hexdigest of the SHA1 of the content. If this is missing, the SHA1 will be calculated upon upload.

->download_file_by_name( %options )

Downloads a file from this bucket by name:

my $content = $bucket->download_file_by_name(
    file => 'the/public/name.txt',
);

This saves you searching through the list of existing files if you already know the filename.

->api

Returns the underlying API object

About

interface to the Backblaze B2 API

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages