Python tool to upload files into Azure Storage Blob Service from local file system.
AzCopy is the official tool from Microsoft that, among many other things, implements bulk upload of files from local file system to Azure Storage Blob Service. PyAzBlob is a simple console application created in a few hours, mostly for fun and to practice with Microsoft Azure Storage SDK for Python. However, it does implement a couple of features that I find useful for my personal use, that are not available in AzCopy.
_____ ____ _ _
| __ \ /\ | _ \| | | |
| |__) | _ / \ ___| |_) | | ___ | |__
| ___/ | | | / /\ \ |_ / _ <| |/ _ \| '_ \
| | | |_| |/ ____ \ / /| |_) | | (_) | |_) |
|_| \__, /_/ \_\/___|____/|_|\___/|_.__/
__/ |
|___/
- user friendly console application with integrated help
- recursive upload of files, keeping the same folder structure of local file system
- definition of ignored files by Unix-style glob patterns, in
.pyazblobignore
file (read from command CWD) - supports definition of Azure Storage keys inside environmental variables or in .ini file
- supports specifying mime types by file extension in
settings.json
file (read from command CWD)
- Python >= 3.7
Install:
pip install pyazblob
Verify that the CLI was installed:
pyazblob --help
The CLI works by storage account name and key. These parameters can be either configured as environmental variables (recommended) or passed as input parameters.
Recommendations: if you are creating an Azure Storage for backups, use Standard performance and LRS (Locally Redundant Storage). Make sure to use Private containers if you want your data to be kept private.
Storage account name and settings can be found in the Azure Portal under Settings > Access keys
.
Example: upload all files from /home/username/Pictures/
recursively, recreating the folder structure:
pyazblob -p /home/username/Pictures/ -r
Upload all files from C:\Users\username\Documents\
recursively, keeping folder structure starting from \Documents\
:
python pyazblob.py -p C:\Users\username\Documents\ -c C:\Users\username\
- define ignored file paths (Unix-style globs) using
.pyazblobignore
file - define Azure Storage name and key either by CLI option, or using the following environmental variables (for the key is is recommended to use the environmental variable):
Name | Scope |
---|---|
PYAZ_ACCOUNT_NAME | account name |
PYAZ_ACCOUNT_KEY | account key |