l.s.b.StorageDriver(BaseDriver) : class documentation

Part of libcloud.storage.base View Source View In Hierarchy

Known subclasses: libcloud.storage.drivers.atmos.AtmosDriver, libcloud.storage.drivers.cloudfiles.CloudFilesStorageDriver, libcloud.storage.drivers.dummy.DummyStorageDriver, libcloud.storage.drivers.s3.S3StorageDriver

A base StorageDriver to derive from.
Method __init__
Method list_containters Return a list of containers.
Method list_container_objects Return a list of objects for the given container.
Method get_container Return a container instance.
Method get_container_cdn_url Return a container CDN URL.
Method get_object Return an object instance.
Method get_object_cdn_url Return a container CDN URL.
Method enable_container_cdn Undocumented
Method enable_object_cdn Undocumented
Method download_object Download an object to the specified destination path.
Method download_object_as_stream Return a generator which yields object data.
Method upload_object Upload an object currently located on a disk.
Method upload_object_via_stream Upload an object using an iterator.
Method delete_object Delete an object.
Method create_container Create a new container.
Method delete_container Delete a container.
Method _get_object Call passed callback and start transfer of the object'
Method _save_object Save object to the provided path.
Method _upload_object Helper function for setting common request headers and calling the passed in callback which uploads an object.
Method _upload_data Upload data stored in a string.
Method _stream_data Stream a data over an http connection.
Method _upload_file Upload a file to the server.
Method _get_hash_function Return instantiated hash function for the hash type supported by the provider.

Inherited from BaseDriver:

Method _ex_connection_class_kwargs Return extra connection keyword arguments which are passed to the Connection class constructor.
def __init__(self, key, secret=None, secure=True, host=None, port=None): (source)
ParameterskeyAPI key or username to used (type: str)
secretSecret password to be used (type: str)
secureWeither to use HTTPS or HTTP. Note: Some providers only support HTTPS, and it is on by default. (type: bool)
hostOverride hostname used for connections. (type: str)
portOverride port used for connections. (type: int)
api_versionOptional API version. Only used by drivers which support multiple API versions. (type: str)
def list_containters(self): (source)
Return a list of containers.
ReturnsA list of Container instances.
def list_container_objects(self, container): (source)
Return a list of objects for the given container.
ParameterscontainerContainer instance (type: Container)
ReturnsA list of Object instances.
def get_container(self, container_name): (source)
Return a container instance.
Parameterscontainer_nameContainer name. (type: str)
ReturnsContainer instance.
def get_container_cdn_url(self, container): (source)
Return a container CDN URL.
ParameterscontainerContainer instance (type: Container)
ReturnsA CDN URL for this container.
def get_object(self, container_name, object_name): (source)
Return an object instance.
Parameterscontainer_nameContainer name. (type: str)
object_nameObject name. (type: str)
ReturnsObject instance.
def get_object_cdn_url(self, obj): (source)
Return a container CDN URL.
ParametersobjObject instance (type: Object)
ReturnsA CDN URL for this object.
def enable_container_cdn(self, container): (source)
Undocumented
def enable_object_cdn(self, obj): (source)
Undocumented
def download_object(self, obj, destination_path, overwrite_existing=False, delete_on_failure=True): (source)
Download an object to the specified destination path.
ParametersobjObject instance. (type: Object)
destination_pathFull path to a file or a directory where the incoming file will be saved. (type: str)
overwrite_existingTrue to overwrite an existing file, defaults to False. (type: bool)
delete_on_failureTrue to delete a partially downloaded file if the download was not successful (hash mismatch / file size). (type: bool)
ReturnsTrue if an object has been successfully downloaded, False otherwise. (type: bool)
def download_object_as_stream(self, obj, chunk_size=None): (source)
Return a generator which yields object data.
ParametersobjObject instance (type: Object)
chunk_sizeOptional chunk size (in bytes). (type: int)
def upload_object(self, file_path, container, object_name, extra=None, verify_hash=True): (source)
Upload an object currently located on a disk.
Parametersfile_pathPath to the object on disk. (type: str)
containerDestination container. (type: Container)
object_nameObject name. (type: str)
extra(optional) Extra attributes (driver specific). (type: dict)
def upload_object_via_stream(self, iterator, container, object_name, extra=None): (source)
Upload an object using an iterator.

If a provider supports it, chunked transfer encoding is used and you don't need to know in advance the amount of data to be uploaded.

Otherwise if a provider doesn't support it, iterator will be exhausted so a total size for data to be uploaded can be determined.

Note: Exhausting the iterator means that the whole data must be buffered in memory which might result in memory exhausting when uploading a very large object.

If a file is located on a disk you are advised to use upload_object function which uses fs.stat function to determine the file size and it doesn't need to buffer whole object in the memory.

ParametersiteratorAn object which implements the iterator interface. (type: object)
containerDestination container. (type: Container)
object_nameObject name. (type: str)
extra(optional) Extra attributes (driver specific).

Note: This dictionary must contain a 'content_type' key which represents a content type of the stored object.

(type: dict)
def delete_object(self, obj): (source)
Delete an object.
ParametersobjObject instance. (type: Object)
Returnsbool True on success.
def create_container(self, container_name): (source)
Create a new container.
Parameterscontainer_nameContainer name. (type: str)
ReturnsContainer instance on success.
def delete_container(self, container): (source)
Delete a container.
ParameterscontainerContainer instance (type: Container)
ReturnsTrue on success, False otherwise. (type: bool)
def _get_object(self, obj, callback, callback_kwargs, response, success_status_code=None): (source)
Call passed callback and start transfer of the object'
ParametersobjObject instance. (type: Object)
callbackFunction which is called with the passed callback_kwargs (type: Function)
callback_kwargsKeyword arguments which are passed to the callback. (type: dict)
responseResponse instance.
success_status_codeStatus code which represents a successful transfer (defaults to httplib.OK) (type: int)
ReturnsTrue on success, False otherwise. (type: bool)
Unknown Field: typedresponseResponse
def _save_object(self, response, obj, destination_path, overwrite_existing=False, delete_on_failure=True, chunk_size=None): (source)
Save object to the provided path.
ParametersresponseRawResponse instance. (type: RawResponse)
objObject instance. (type: Object)
destination_pathDestination directory. (type: Str)
delete_on_failureTrue to delete partially downloaded object if the download fails. (type: bool)
overwrite_existingTrue to overwrite a local path if it already exists. (type: bool)
chunk_sizeOptional chunk size (defaults to libcloud.storage.base.CHUNK_SIZE, 8kb) (type: int)
ReturnsTrue on success, False otherwise. (type: bool)
def _upload_object(self, object_name, content_type, upload_func, upload_func_kwargs, request_path, request_method='PUT', headers=None, file_path=None, iterator=None): (source)
Helper function for setting common request headers and calling the passed in callback which uploads an object.
def _upload_data(self, response, data, calculate_hash=True): (source)
Upload data stored in a string.
ParametersresponseRawResponse object. (type: RawResponse)
dataData to upload. (type: str)
calculate_hashTrue to calculate hash of the transfered data. (defauls to True). (type: boolean)
ReturnsFirst item is a boolean indicator of success, second one is the uploaded data MD5 hash and the third one is the number of transferred bytes. (type: tuple)
def _stream_data(self, response, iterator, chunked=False, calculate_hash=True, chunk_size=None): (source)
Stream a data over an http connection.
ParametersresponseRawResponse object. (type: RawResponse)
responseAn object which implements an iterator interface or a File like object with read method. (type: RawResponse)
chunkedTrue if the chunked transfer encoding should be used (defauls to False). (type: boolean)
calculate_hashTrue to calculate hash of the transfered data. (defauls to True). (type: boolean)
chunk_sizeOptional chunk size (defaults to CHUNK_SIZE) (type: int)
ReturnsFirst item is a boolean indicator of success, second one is the uploaded data MD5 hash and the third one is the number of transferred bytes. (type: tuple)
def _upload_file(self, response, file_path, chunked=False, calculate_hash=True): (source)
Upload a file to the server.
ParametersresponseRawResponse object. (type: RawResponse)
file_pathPath to a local file. (type: str)
responseAn object which implements an iterator interface (File object, etc.) (type: RawResponse)
ReturnsFirst item is a boolean indicator of success, second one is the uploaded data MD5 hash and the third one is the number of transferred bytes. (type: tuple)
def _get_hash_function(self): (source)
Return instantiated hash function for the hash type supported by the provider.
API Documentation for libcloud, generated by pydoctor at 2012-07-15 18:48:28.