Also change signature of UploadObject to be independent of storage and work on streams like DownloadObject. This may be further refactored later