Unified cloud storage API for storage services.
============= Cloud Storage =============
.. start-badges
.. image:: https://img.shields.io/pypi/v/cloudstorage.svg :target: https://pypi.org/project/cloudstorage/
.. image:: https://img.shields.io/pypi/l/cloudstorage.svg :target: https://pypi.org/project/cloudstorage/
.. image:: https://img.shields.io/pypi/wheel/cloudstorage.svg :target: https://pypi.org/project/cloudstorage/
.. image:: https://img.shields.io/pypi/pyversions/cloudstorage.svg :target: https://pypi.org/project/cloudstorage/
.. image:: https://travis-ci.org/scottwernervt/cloudstorage.svg?branch=master :target: https://travis-ci.org/scottwernervt/cloudstorage/
.. image:: https://codeclimate.com/github/scottwernervt/cloudstorage/badges/gpa.svg :target: https://codeclimate.com/github/scottwernervt/cloudstorage/
.. end-badges
Cloud Storage_ is a Python +3.5 package which creates a unified API for the cloud storage services: Amazon Simple Storage Service (S3), Microsoft Azure Storage, Minio Cloud Storage, Rackspace Cloud Files, Google Cloud Storage, and the Local File System.
Cloud Storage is inspired by Apache Libcloud <https://libcloud.apache.org/>_. Advantages to Apache Libcloud Storage are:
- Full Python 3 support.
- Generate temporary signed URLs for downloading and uploading files.
- Support for request and response headers like Content-Disposition.
- Pythonic! Iterate through all blobs in containers and all containers in
Usage =====
.. code-block:: python
>>> from cloudstorage.drivers.amazon import S3Driver >>> storage = S3Driver(key='
>>> container = storage.create_container('avatars') >>> container.cdn_url 'https://avatars.s3.amazonaws.com/'
>>> avatarblob = container.uploadblob('/path/my-avatar.png') >>> avatarblob.cdnurl 'https://s3.amazonaws.com/avatars/my-avatar.png'
>>> avatarblob.generatedownload_url(expires=3600) 'https://avatars.s3.amazonaws.com/my-avatar.png?' 'AWSAccessKeyId=
>>> container.generateuploadurl('user-1-avatar.png', expires=3600) { 'url': 'https://avatars.s3.amazonaws.com/', 'fields': { 'key': 'user-1-avatar.png', 'AWSAccessKeyId': '
Supported Services ==================
Amazon S3_Google Cloud Storage_Microsoft Azure Storage_Minio Cloud Storage_Rackspace CloudFiles_- Local File System
Installation ============
To install Cloud Storage:
.. code-block:: bash
pip install cloudstorage
Also install the storage driver(s) you will be using:
.. code-block:: bash
pip install cloudstorage[amazon] pip install cloudstorage[google] pip install cloudstorage[local] pip install cloudstorage[microsoft] pip install cloudstorage[minio] pip install cloudstorage[rackspace]
.. _Amazon S3: https://aws.amazon.com/s3/ .. _Blackblaze B2 Cloud Storage: https://www.backblaze.com/b2/Cloud-Storage.html .. _Google Cloud Storage: https://cloud.google.com/storage/ .. _Microsoft Azure Storage: https://azure.microsoft.com/services/storage/ .. _Minio Cloud Storage: https://www.minio.io/ .. _Rackspace CloudFiles: https://www.rackspace.com/cloud/files .. _Cloud Storage: https://github.com/scottwernervt/cloudstorage/