Microsoft Azure Storage SDK for Python
NEWS!! azure-storage-blob version 12.0.0 is GA now!
Here is the link to v12.0.0 repo.
Note: the current repo is for azure-storage-blob<=2.1.0, upgrading to v12.0.0 could break you current code. Link for breaking change details.
This project provides a client library in Python that makes it easy to consume Microsoft Azure Storage services. For documentation please see the Microsoft Azure Python Developer Center and our API Reference (also available on readthedocs).
If you are looking for the Service Bus or Azure Management libraries, please visit https://github.com/Azure/azure-sdk-for-python.
Compatibility
IMPORTANT: If you have an earlier version of the azure package (version < 1.0), you should uninstall it before installing this package.
You can check the version using pip:
pip freeze
If you see azure==0.11.0 (or any version below 1.0), uninstall it first then install it again:
pip uninstall azure
pip install azure
If you are upgrading from a version older than 0.30.0, see the upgrade doc, the usage samples in the samples directory, and the ChangeLog and BreakingChanges.
If you are encountering problems installing azure storage on Azure Web Apps, upgrading pip might help.
IMPORTANT: If you have an earlier version of the azure-storage package (version <= 0.36.0), you should uninstall it before installing the new split packages.
You can check the version using pip:
pip freeze
If you see azure-storage==0.36.0 (or any version below 0.36.0), uninstall it first:
pip uninstall azure-storage
Features
- Blob
- Create/Read/Update/Delete Containers
- Create/Read/Update/Delete Blobs
- Advanced Blob Operations
- Queue
- Create/Delete Queues
- Insert/Peek Queue Messages
- Advanced Queue Operations
- Files
- Create/Update/Delete Shares
- Create/Update/Delete Directories
- Create/Read/Update/Delete Files
- Advanced File Operations
Getting Started
Download
The Azure Storage SDK for Python is composed of 5 packages:
- azure-storage-blob
- Contains the blob service APIs.
- azure-storage-file
- Contains the file service APIs.
- azure-storage-queue
- Contains the queue service APIs.
- azure-storage-common
- Contains common code shared by blob, file and queue.
- azure-storage-nspkg
- Owns the azure.storage namespace, user should not use this directly.
Note: prior to and including version 0.36.0, there used to be a single package (azure-storage) containing all services. It is no longer supported, and users should install the 3 before-mentioned service packages individually, depending on the need. In addition, the table package is no longer releasing under the azure-storage namespace, please refer to cosmosdb.
Option 1: Via PyPi
To install via the Python Package Index (PyPI), type:
pip install azure-storage-blob pip install azure-storage-file pip install azure-storage-queue
Option 2: Source Via Git
To get the source code of the SDK via git just type:
git clone git://github.com/Azure/azure-storage-python.git cd ./azure-storage-python/azure-storage-nspkg python setup.py install cd ../azure-storage-common python setup.py install cd ../azure-storage-blob python setup.py install
Replace azure-storage-blob with azure-storage-file or azure-storage-queue, to install the other services.
Option 3: Source Zip
Download a zip of the code via GitHub or PyPi. Then follow the same instructions in option 2.
Minimum Requirements
- Python 2.7, 3.3-3.7.
- See setup.py for dependencies
Usage
To use this SDK to call Microsoft Azure storage services, you need to first create an account.
Logging
To make debugging easier, it is recommended to turn on logging for the logger named 'azure.storage'. Here are two example configurations:
# Basic configuration: configure the root logger, including 'azure.storage'
logging.basicConfig(format='%(asctime)s %(name)-20s %(levelname)-5s %(message)s', level=logging.INFO)
# More advanced configuration allowing more control
logger = logging.getLogger('azure.storage')
handler = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s %(name)-20s %(levelname)-5s %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel(logging.INFO)
Here is how we use the logging levels, it is recommended to use INFO:
- DEBUG: log strings to sign
- INFO: log outgoing requests and responses, as well as retry attempts
- WARNING: not used
- ERROR: log calls that still failed after all the retries
Code Sample
See the samples directory for blob, queue, and file usage samples.
Need Help?
Be sure to check out the Microsoft Azure Developer Forums on MSDN or the Developer Forums on Stack Overflow if you have trouble with the provided code.
Contribute Code or Provide Feedback
If you would like to become an active contributor to this project, please follow the instructions provided in Azure Projects Contribution Guidelines. You can find more details for contributing in the CONTRIBUTING.md doc.
If you encounter any bugs with the library, please file an issue in the Issues section of the project.