Added OpenCloud::upload() method