public function downloadFile($fileUri, $locale = '', DownloadFileParameters $params = null)
    {
        if ((!is_string($locale)) || strlen($locale) < 2) {
            $message = vsprintf(
                'Invalid locale value got. Expected a string of at least 2 chars length, but got: %s',
                [
                    '' === $locale ? 'Empty string' : var_export($locale, true)
                ]
            );

            throw new SmartlingApiException($message);
        }

        $params = (is_null($params)) ? [] : $params->exportToArray();
        $params['fileUri'] = $fileUri;

        $requestData = $this->getDefaultRequestData('query', $params);
        unset($requestData['headers']['Accept']);

        return $this->sendRequest("locales/{$locale}/file", $requestData, self::HTTP_METHOD_GET, true);
    }