protected function getFullFileName(Provider $provider)
    {
        $folder = $this->folder ? rtrim($this->folder, '/').'/' : '';

        if ($this->filename) {
            $filename = $this->filename;
        } else {
            $filename = md5(uniqid(microtime(true), true));
        }

        return $folder.$filename.'.'.$provider->getExtension();
    }