Skip to main content
https://badge.fury.io/py/django-b2.svg https://travis-ci.org/pyutil/django-b2.svg?branch=master https://codecov.io/gh/pyutil/django-b2/branch/master/graph/badge.svg

django backblaze b2 storage using b2sdk (b2sdk is official backblaze python library)

Documentation

The full documentation is at https://django-b2.readthedocs.io.

Quickstart

Install django-b2:

pip install django-b2

Add into your settings:

MEDIA_URL = '/media/'
DEFAULT_FILE_STORAGE = 'django_b2.storage.B2Storage'                 # if used without django-tenant-schemas
# DEFAULT_FILE_STORAGE = 'django_b2.tenant_storage.TenantB2Storage'  # if used with django-tenant-schemas
B2_APP_KEY_ID = 000xxxxxxxxxxxx000000000n
B2_APP_KEY = keyvalue
B2_BUCKET_NAME = bucketname
# optional, see Usage (docs/usage.rst):
B2_FORCE_UNIQUE = False
# optional, see Usage (docs/usage.rst):
MEDIA_ROOT = ..
B2_LOCAL_MEDIA = ..  # "", "M", "L", "ML"

Using outside of Django:

from django_b2.backblaze_b2 import BackBlazeB2
b2 = BackBlazeB2()
b2.authorize("production", application_key_id, application_key)
b2.set_bucket(bucket_name)
with open(filename, 'rb') as f:
    b2.upload_file(filename, f)
content = b2.download_file(filename)
with open(filename2, 'wb') as f:
    f.write(content)

Features

  • Django media storage (with storage.py) or general python access to BackBlaze B2 (without usage of storage.py).

  • Upload single file to B2 (call backblaze_b2.py as script; new in 0.2.0)

  • Backup a postgres database to B2 (use script pgtob2.sh; new in 0.2.0)

  • Optionally cache media files locally for immediate access or for long time faster access.

Running Tests

Does the code actually work?

source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install -r requirements_test.txt
(myenv) $ tox

Credits

Tools used in rendering this package:

History

0.7.0 (2020-12-29)

  • new Django setting B2_FORCE_UNIQUE and new underlaying constructor parameter BackBlazeB2(force_unique=True)

0.6.2 (2020-11-04)

  • B2Storage() initializes as the settings.DEFAULT_FILE_STORAGE if ‘B2Storage’ string is not inside can be used together with @override_settings(DEFAULT_FILE_STORAGE=’django.core.files.storage.FileSystemStorage’) see https://github.com/pyutil/django-b2/issues/4

0.6.0 (2020-05-28)

0.5.5 (2020-05-24)

  • bugfix: upload on Windows, thx Same Weaver, https://github.com/pyutil/django-b2/issues/2

  • Linux abs filenames: leading “/” will be removed so we can use local abs names 1:1 to upload to b2 (in Windows: C:/.. is valid name)

0.5.0 (2020-02-17)

  • can work with django-tenant schemas, tenant aware storage django_b2.tenant_storage.TenantB2Storage

0.4.0 (2020-02-10)

  • older local media (see B2_LOCAL_MEDIA) can be cleared with management command b2_clear_local_media

  • B2_LOCAL_CACHE setting renamed to B2_LOCAL_MEDIA, possible values changed to =”ML”

0.3.0 (2020-02-08) - do not use

  • !! new B2_LOCAL_MEDIA setting was in 0.3.0 named incompatible as B2_LOCAL_CACHE=”FM”

  • B2_LOCAL_MEDIA setting to make a local copy of files. So you can have local instances backuped on backblaze.

  • B2_LOCAL_MEDIA prevents failures if the django application want immediately reopen the file (imagekits creating thumbnails, Wagtail is an example)

0.2.0 (2020-01-31)

  • backblaze_b2.py can be called as script to upload single file.

  • pgtob2.sh script to backup postgres database

0.1.5 (2020-01-02)

  • No code change. Minor docs changes.

0.1.4 (2020-01-02)

  • First release on PyPI.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-b2-0.7.0.tar.gz (24.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_b2-0.7.0-py2.py3-none-any.whl (66.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file django-b2-0.7.0.tar.gz.

File metadata

  • Download URL: django-b2-0.7.0.tar.gz
  • Upload date:
  • Size: 24.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.9.0

File hashes

Hashes for django-b2-0.7.0.tar.gz
Algorithm Hash digest
SHA256 97890435d1e4552f96552c6d2e062c99848f7bcb8a3d91944e425004e6421ba2
MD5 f0b1ac22ede6c64e94ecc21ee15ab8d9
BLAKE2b-256 ea1f312b6aa75ac405a9a2b81484a2786c8a35165d018bcf1f9b97278be3f1b3

See more details on using hashes here.

File details

Details for the file django_b2-0.7.0-py2.py3-none-any.whl.

File metadata

  • Download URL: django_b2-0.7.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 66.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.9.0

File hashes

Hashes for django_b2-0.7.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0601cec39fc9e37d13789b40f1a52a29307c8a67cc06241974a9dde35bf0bc0a
MD5 b70cd81afdc8bd2b17b4c2e14198bebe
BLAKE2b-256 e71b8d44f7f9035a79666b2821d2f4451c6a3e765f10d2e6f773f07f1fcfe100

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.5

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.1

2 files

0.3.0

2 files

0.2.0

2 files

0.1.8

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page