-
Notifications
You must be signed in to change notification settings - Fork 2
Home
This is a reverse engineered implementation of the Backblaze Downloader.
I used mitmproxy to capture the requests the downloader made, and used Python requests
to call the same API, and interpret the responses.
I added a thin layer of functionality to make it more usable for my own purposes:
- Download multiple restores
- Prompts to set download location for each zip file
- Actually function progress bars that update without knocking the window out!
Because I had to use the restore functionality to get some files over hotel wifi, and the official Downloader:
- made me login for each restore
- couldn't have multiple restores running without randomly deadlocking one restore
- can't be queued to run overnight
- UI perpetually went unresponsive
A lot of these are known issues which Backblaze says fixes are improvements are coming. At some point.
Also, there's no official restore client for Linux, this works on Linux (and is headless).
Assuming you've got Python 3.8+ installed:
- Install Poetry
- Checkout this repo & switch to the directory
- Install dependencies with
poetry install
- Run with
poetry run bzdownloader/bzdownloader.py
- Answer the questions
-
ProfitHave backblaze restore files saved somewhere with less hassle.
If you don't have Python 3.8 installed, I can't help you.
Because it's not multi-threaded, it's slower than the official client. In my use, this was about 10% slower than the official client, but I let it run overnight with no issue.
This is a personal project, it-works-for-me is the default. If it doesn't work for you, it's on you to figure out why.
If you find a bug, the best thing would be to create a PR for it. Those I review periodically.
You can create an issue, but I reserve the right to close it with no action. (See: it-works-for-me)
I'm not accepting feature requests, you can fork this and go build your own variant off of this. (See: it-works-for-me)
If Backblaze asks, I'll take this down.
Did this solve a problem for you? That's awesome! I'm happy. Find me on Twitter and let me know :)
If it really helped, you can throw some money at my favourite charity: Washington Alaskan Malamute Adoption League, or, if you're not in the US, your local animal shelter.
If you want me to help you with something: No. You do not get to make demands on my time. I wrote this to save myself time, and because it was fun to figure out an annoying problem. Go and read this.