public function createMediaFromFile($fileName, $title, $description = '', $options = array())
    {
        if (empty($fileName)) {
            throw new BceClientException("The parameter fileName should NOT be null or empty string");
        }

        if (empty($title)) {
            throw new BceClientException("The parameter title should NOT be null or empty string");
        }
        // apply media
        $uploadInfo = $this->applyMedia($options);
        // upload file to bos
        $this->uploadMedia($fileName, $uploadInfo->sourceBucket, $uploadInfo->sourceKey);
        // process media
        // try to cal the extension of the file
        $extension = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
        if (!preg_match("/^[a-z0-9]{0,10}$/", $extension)) {
            $extension = '';
        }
        $options['extension'] = $extension;
        return $this->processMedia($uploadInfo->mediaId, $title, $description, $options);
    }