Backblaze B2 Storage Driver Documentation¶
Backblaze is an online backup tool that allows Windows and Mac OS X users to back up their data to an offsite data center.
Backblaze B2 is their cloud object storage offering similar to Amazon S3 and other object storage services.

Instantiating a driver¶
To instantiate the driver you need to pass your key id and application key to the driver constructor as shown below.
To access the credentials, you can login to https://secure.backblaze.com/user_signin.htm, then click “App Keys” or go to https://secure.backblaze.com/app_keys.htm directly.
keyID
serves as the first and applicationKey
as the second argument to
the driver constructor.
from libcloud.storage.types import Provider
from libcloud.storage.providers import get_driver
key_id = "XXXXXX"
application_key = "YYYYYY"
cls = get_driver(Provider.BACKBLAZE_B2)
driver = cls(key_id, application_key)
API Docs¶
- class libcloud.storage.drivers.backblaze_b2.BackblazeB2StorageDriver(key, secret=None, secure=True, host=None, port=None, api_version=None, region=None, **kwargs)[source]¶
- Parameters:
key (
str
) – API key or username to be used (required)secret (
str
) – Secret password to be used (required)secure (
bool
) – Whether to use HTTPS or HTTP. Note: Some providers only support HTTPS, and it is on by default.host (
str
) – Override hostname used for connections.port (
int
) – Override port used for connections.api_version (
str
) – Optional API version. Only used by drivers which support multiple API versions.region (
str
) – Optional driver region. Only used by drivers which support multiple regions.
- Return type:
None
- connectionCls¶
alias of
BackblazeB2Connection
- create_container(container_name, ex_type='allPrivate')[source]¶
Create a new container.
- Parameters:
container_name (
str
) – Container name.- Returns:
Container instance on success.
- Return type:
- delete_container(container)[source]¶
Delete a container.
- Parameters:
container (
libcloud.storage.base.Container
) – Container instance- Returns:
True
on success,False
otherwise.- Return type:
bool
- delete_object(obj)[source]¶
Delete an object.
- Parameters:
obj (
libcloud.storage.base.Object
) – Object instance.- Returns:
bool
True on success.- Return type:
bool
- download_object(obj, destination_path, overwrite_existing=False, delete_on_failure=True)[source]¶
Download an object to the specified destination path.
- Parameters:
obj (
libcloud.storage.base.Object
) – Object instance.destination_path (
str
) – Full path to a file or a directory where the incoming file will be saved.overwrite_existing (
bool
) – True to overwrite an existing file, defaults to False.delete_on_failure (
bool
) – True to delete a partially downloaded file if the download was not successful (hash mismatch / file size).
- Returns:
True if an object has been successfully downloaded, False otherwise.
- Return type:
bool
- download_object_as_stream(obj, chunk_size=None)[source]¶
Return a iterator which yields object data.
- Parameters:
obj (
libcloud.storage.base.Object
) – Object instancechunk_size (
int
) – Optional chunk size (in bytes).
- Return type:
iterator
ofbytes
- download_object_range(obj: Object, destination_path: str, start_bytes: int, end_bytes: Optional[int] = None, overwrite_existing: bool = False, delete_on_failure: bool = True) bool ¶
Download part of an object.
- Parameters:
obj (
libcloud.storage.base.Object
) – Object instance.destination_path (
str
) – Full path to a file or a directory where the incoming file will be saved.start_bytes (
int
) – Start byte offset (inclusive) for the range download. Offset is 0 index based so the first byte in file file is “0”.end_bytes (
int
) – End byte offset (non-inclusive) for the range download. If not provided, it will default to the end of the file.overwrite_existing (
bool
) – True to overwrite an existing file, defaults to False.delete_on_failure (
bool
) – True to delete a partially downloaded file if the download was not successful (hash mismatch / file size).
- Returns:
True if an object has been successfully downloaded, False otherwise.
- Return type:
bool
- download_object_range_as_stream(obj: Object, start_bytes: int, end_bytes: Optional[int] = None, chunk_size: Optional[int] = None) Iterator[bytes] ¶
Return a iterator which yields range / part of the object data.
- Parameters:
obj (
libcloud.storage.base.Object
) – Object instancestart_bytes (
int
) – Start byte offset (inclusive) for the range download. Offset is 0 index based so the first byte in file file is “0”.end_bytes (
int
) – End byte offset (non-inclusive) for the range download. If not provided, it will default to the end of the file.chunk_size (
int
) – Optional chunk size (in bytes).
- Return type:
iterator
ofbytes
- enable_container_cdn(container: Container) bool ¶
Enable container CDN.
- Parameters:
container (
libcloud.storage.base.Container
) – Container instance- Return type:
bool
- enable_object_cdn(obj: Object) bool ¶
Enable object CDN.
- Parameters:
obj (
libcloud.storage.base.Object
) – Object instance- Return type:
bool
- ex_get_upload_data(container_id)[source]¶
Retrieve information used for uploading files (upload url, auth token, etc).
- Rype:
dict
- get_container(container_name)[source]¶
Return a container instance.
- Parameters:
container_name (
str
) – Container name.- Returns:
Container
instance.- Return type:
- get_container_cdn_url(container: Container) str ¶
Return a container CDN URL.
- Parameters:
container (
libcloud.storage.base.Container
) – Container instance- Returns:
A CDN URL for this container.
- Return type:
str
- get_object(container_name, object_name)[source]¶
Return an object instance.
- Parameters:
container_name (
str
) – Container name.object_name (
str
) – Object name.
- Returns:
Object
instance.- Return type:
- get_object_cdn_url(obj: Object) str ¶
Return an object CDN URL.
- Parameters:
obj (
libcloud.storage.base.Object
) – Object instance- Returns:
A CDN URL for this object.
- Return type:
str
- iterate_container_objects(container, prefix=None, ex_prefix=None)[source]¶
Return a generator of objects for the given container.
- Parameters:
container (
Container
) – Container instanceprefix (
str
) – Filter objects starting with a prefix. Filtering is performed client-side.ex_prefix (
str
) – (Deprecated.) Filter objects starting with a prefix. Filtering is performed client-side.
- Returns:
A generator of Object instances.
- Return type:
generator
ofObject
- iterate_containers()[source]¶
Return a iterator of containers for the given account
- Returns:
A iterator of Container instances.
- Return type:
iterator
oflibcloud.storage.base.Container
- list_container_objects(container: Container, prefix: Optional[str] = None, ex_prefix: Optional[str] = None) List[Object] ¶
Return a list of objects for the given container.
- Parameters:
container (
libcloud.storage.base.Container
) – Container instance.prefix (
str
) – Filter objects starting with a prefix.ex_prefix (
str
) – (Deprecated.) Filter objects starting with a prefix.
- Returns:
A list of Object instances.
- Return type:
list
oflibcloud.storage.base.Object
- list_containers() List[Container] ¶
Return a list of containers.
- Returns:
A list of Container instances.
- Return type:
list
ofContainer