'Usage: combine <remotefile> [localfile] [md5s] - try to create a file at PCS by combining slices, having MD5s specified
remotefile - remote file at Baidu Yun (after app root directory at Baidu Yun)
localfile - local file to verify against, passing in a star \'*\' or \'/dev/null\' means no verification
md5s - MD5 digests of the slices, can be:
- list of MD5 hex strings separated by spaces
- a string in the form of \'l<path>\' where <path> points to a text file containing MD5 hex strings separated by spaces or line-by-line'

def combine(self, remotefile, localfile=u'*', *args):

    self.__slice_md5s = []
    if args:
        if (args[0].upper() == u'L'):
            try:
                with io.open(args[1:], u'r', encoding=u'utf-8') as f:
                    contents = f.read()
                    digests = filter(None, contents.split())
                    for d in digests:
                        self.__slice_md5s.append(d)
            except IOError as ex:
                perr(u"Exception    occured    while    reading    file    '{}'.\n{}".format(localfile, formatex(ex)))
        else:
            for arg in args:
                self.__slice_md5s.append(arg)
    else:
        perr(u'You    MUST    provide    the    MD5s    hex    strings    through    arguments    or    a    file.')
        return const.EArgument
    original_verify = self.__verify
    if ((not localfile) or (localfile == u'*') or (localfile == u'/dev/null')):
        self.__current_file = u'/dev/null'
        self.__verify = False
    else:
        self.__current_file = localfile
        self.__current_file_size = getfilesize(localfile)
    result = self.__combine_file(get_pcs_path(remotefile))
    self.__verify = original_verify
    return result
