Upload copies the file with src path to the dst path.
If the destination directory does not exist, it is created.
If the destination path exist and is not a regular file an error is returned.
If it exists, is a file and it differs the file is overwritten.