public static function curlDownload($url, $path, $timeout = 3600)
    {
        $return = false;
        try {
            // open file to write
            $fp = fopen($path, 'w+');
            // start curl
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            // set return transfer to false
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
            curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            // increase timeout to download big file
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
            // write data to local file
            curl_setopt($ch, CURLOPT_FILE, $fp);
            // execute curl
            $return = curl_exec($ch);
            // close curl
            curl_close($ch);
            // close local file
            fclose($fp);
        } catch (\Exception $e) {
            return false;
        }
        return $return;
    }