protected function runUpload($file)
    {
        $this->provider->setFile($file);

        if (! $this->provider->isValid()) {
            throw new InvalidFileException("Given file [{$file}] is invalid.");
        }

        $filename = $this->getFullFileName($this->provider);

        if ($this->filesystem->disk($this->disk)->put($filename, $this->provider->getContents(), $this->getVisibility())) {
            return $filename;
        }

        return false;
    }