Add support for uploading storage objects using an iterator even though driver 
might not support chunked encoding
-----------------------------------------------------------------------------------------------------------------

                 Key: LIBCLOUD-101
                 URL: https://issues.apache.org/jira/browse/LIBCLOUD-101
             Project: Libcloud
          Issue Type: Improvement
          Components: Storage
    Affects Versions: 0.5.0
            Reporter: Birk Nilson
            Priority: Minor
             Fix For: 0.5.2


Currently there are two options for uploading objects to any given storage; 
StorageDriver.upload_object() and StorageDriver.upload_object_via_stream(). The 
former strictly requires the object to be written to disk prior to upload since 
it takes the file path as argument. The latter does support upload given an 
iterator, but does not work for Amazon S3 since they do not support chunked 
encoding. After discussing this with Tomaž he and I came to the conclusion that 
a third method is in order which will take an iterator as argument while not 
requiring the provider to support chunked encoding.

The solution is to support an iterator as argument and generate a request by 
iterating through it directly. However, these will require the object to be 
kept in memory and depending on the size and available resources it might lead 
to exhaustion. So it should be noted in the methods documentation that the 
implementation is responsible for preventing such outcomes; which can be done 
by preventing the allowed upload size for example.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to