Added .send method to cloudfiles storage object

.. wrapper. Also added some logging - A .warn() for the legacy .write()
method and a .debug() for the new copy_local_to_storage()
This commit is contained in:
Joar Wandborg 2013-03-03 00:11:34 +01:00
parent 8b35e7ad15
commit e11bc1991d

View File

@ -162,6 +162,7 @@ class CloudFilesStorage(StorageInterface):
# and bandwidth usage. So, override this method and use the # and bandwidth usage. So, override this method and use the
# Cloudfile's "send" interface instead. # Cloudfile's "send" interface instead.
# TODO: Fixing write() still seems worthwhile though. # TODO: Fixing write() still seems worthwhile though.
_log.debug('Sending {0} to cloudfiles...'.format(filepath))
with self.get_file(filepath, 'wb') as dest_file: with self.get_file(filepath, 'wb') as dest_file:
with file(filename, 'rb') as source_file: with file(filename, 'rb') as source_file:
# Copy to storage system in 4096 byte chunks # Copy to storage system in 4096 byte chunks
@ -196,6 +197,10 @@ class CloudFilesStorageObjectWrapper():
Currently this method does not support any write modes except "append". Currently this method does not support any write modes except "append".
However if we should need it it would be easy implement. However if we should need it it would be easy implement.
""" """
_log.warn(
'{0}.write() has bad performance! Use .send instead for now'\
.format(self.__class__.__name__))
if self.storage_object.size and type(data) == str: if self.storage_object.size and type(data) == str:
_log.debug('{0} is > 0 in size, appending data'.format( _log.debug('{0} is > 0 in size, appending data'.format(
self.storage_object.name)) self.storage_object.name))
@ -205,9 +210,12 @@ class CloudFilesStorageObjectWrapper():
self.storage_object.name)) self.storage_object.name))
self.storage_object.write(data, *args, **kwargs) self.storage_object.write(data, *args, **kwargs)
def send(self, *args, **kw):
self.storage_object.send(*args, **kw)
def close(self): def close(self):
""" """
Not implemented. Not sure we need anything here.
""" """
pass pass