blob: fca0185423618af557d09ec90a6dc5e8b9b58401 [file] [log] [blame]
:orphan:
Storage Examples
================
Specify meta-data when uploading an object
------------------------------------------
Most of the providers allow you to associate arbitrary key-value pairs
(meta-data) with every uploaded object. This example shows how to do that in
Libcloud.
.. literalinclude:: /examples/storage/upload_with_metadata.py
:language: python
As you can see in the example above, meta-data is specified by including
``meta_data`` key in the ``extra`` dictionary argument which gets passed
to all the upload methods.
Download part of an object
--------------------------
To perform a partial (range) object download, you can utilize new
:meth:`libcloud.storage.base.StorageDriver.download_object_range`
and :meth:`libcloud.storage.base.StorageDriver.download_object_range_as_stream`
methods which have been added in Libcloud v3.0.0.
``start_bytes`` and ``end_bytes`` behave in the same manner as Python
indexing which means that ``start_bytes`` is inclusive and ``end_bytes``
is non-inclusive.
For example, if the object content is ``0123456789``, here is what
would be returned for various values of start and end bytes arguments:
* start_bytes=0, end_bytes=1 -> 0
* start_bytes=0, end_bytes=2 -> 01
* start_bytes=5, end_bytes=6 -> 5
* start_bytes=5, end_bytes=10 -> 56789
.. literalinclude:: /examples/storage/partial_object_download.py
:language: python
Create a backup of a directory and directly stream it to CloudFiles
-------------------------------------------------------------------
.. literalinclude:: /examples/storage/create_directory_backup_stream_to_cf.py
:language: python
Efficiently download multiple files using gevent
------------------------------------------------
.. literalinclude:: /examples/storage/concurrent_file_download_using_gevent.py
:language: python
Publishing a static website using CloudFiles driver
---------------------------------------------------
.. note::
This example works with Libcloud version 0.11.0 and above.
.. literalinclude:: /examples/storage/publish_static_website_on_cf.py
:language: python