def md5_test(self): folder = temp_folder() filepath = os.path.join(folder, "file.txt") file_content = "a file" save(filepath, file_content) check_md5(filepath, "d6d0c756fb8abfb33e652a20e85b70bc") check_sha1(filepath, "eb599ec83d383f0f25691c184f656d40384f9435") check_sha256( filepath, "7365d029861e32c521f8089b00a6fb32daf0615025b69b599d1ce53501b845c2") with six.assertRaisesRegex( self, ConanException, "md5 signature failed for 'file.txt' file."): check_md5(filepath, "invalid") with six.assertRaisesRegex( self, ConanException, "sha1 signature failed for 'file.txt' file."): check_sha1(filepath, "invalid") with six.assertRaisesRegex( self, ConanException, "sha256 signature failed for 'file.txt' file."): check_sha256(filepath, "invalid")
def check_checksum(file_path, md5, sha1, sha256): if md5: check_md5(file_path, md5) if sha1: check_sha1(file_path, sha1) if sha256: check_sha256(file_path, sha256)
def _download_file(file_url): # The download cache is only used if a checksum is provided, otherwise, a normal download if isinstance(downloader, CachedFileDownloader): downloader.download(file_url, filename, retry=retry, retry_wait=retry_wait, overwrite=overwrite, auth=auth, headers=headers, md5=md5, sha1=sha1, sha256=sha256) else: downloader.download(file_url, filename, retry=retry, retry_wait=retry_wait, overwrite=overwrite, auth=auth, headers=headers) if md5: check_md5(filename, md5) if sha1: check_sha1(filename, sha1) if sha256: check_sha256(filename, sha256) out.writeln("")
def _check_checksum(cache_path, md5, sha1, sha256): if md5: check_md5(cache_path, md5) if sha1: check_sha1(cache_path, sha1) if sha256: check_sha256(cache_path, sha256)
def get(url, md5='', sha1='', sha256='', destination=".", filename="", keep_permissions=False, pattern=None): """ high level downloader + unzipper + (optional hash checker) + delete temporary zip """ if not filename and ("?" in url or "=" in url): raise ConanException( "Cannot deduce file name form url. Use 'filename' parameter.") filename = filename or os.path.basename(url) download(url, filename) if md5: check_md5(filename, md5) if sha1: check_sha1(filename, sha1) if sha256: check_sha256(filename, sha256) unzip(filename, destination=destination, keep_permissions=keep_permissions, pattern=pattern) os.unlink(filename)
def _download_file(file_url): # The download cache is only used if a checksum is provided, otherwise, a normal download run_downloader(requester=requester, output=out, verify=verify, config=config, user_download=True, use_cache=bool(config and checksum), url=file_url, file_path=filename, retry=retry, retry_wait=retry_wait, overwrite=overwrite, auth=auth, headers=headers, md5=md5, sha1=sha1, sha256=sha256) # TODO: Probably move inside downloader, remove the file,... locks... if md5: check_md5(filename, md5) if sha1: check_sha1(filename, sha1) if sha256: check_sha256(filename, sha256) out.writeln("")
def get(url, md5='', sha1='', sha256='', destination="."): """ high level downloader + unzipper + (optional hash checker) + delete temporary zip """ filename = os.path.basename(url) download(url, filename) if md5: check_md5(filename, md5) if sha1: check_sha1(filename, sha1) if sha256: check_sha256(filename, sha256) unzip(filename, destination=destination) os.unlink(filename)
def get(url, md5='', sha1='', sha256='', destination=".", filename="", keep_permissions=False, pattern=None, requester=None, output=None, verify=True, retry=None, retry_wait=None, overwrite=False, auth=None, headers=None): """ high level downloader + unzipper + (optional hash checker) + delete temporary zip """ if not filename and ("?" in url or "=" in url): raise ConanException( "Cannot deduce file name form url. Use 'filename' parameter.") filename = filename or os.path.basename(url) download(url, filename, out=output, requester=requester, verify=verify, retry=retry, retry_wait=retry_wait, overwrite=overwrite, auth=auth, headers=headers) if md5: check_md5(filename, md5) if sha1: check_sha1(filename, sha1) if sha256: check_sha256(filename, sha256) unzip(filename, destination=destination, keep_permissions=keep_permissions, pattern=pattern, output=output) os.unlink(filename)
def download(url, filename, verify=True, out=None, retry=None, retry_wait=None, overwrite=False, auth=None, headers=None, requester=None, md5='', sha1='', sha256=''): out = default_output(out, 'conans.client.tools.net.download') requester = default_requester(requester, 'conans.client.tools.net.download') from conans.tools import _global_config as config # It might be possible that users provide their own requester retry = retry if retry is not None else config.retry retry = retry if retry is not None else 1 retry_wait = retry_wait if retry_wait is not None else config.retry_wait retry_wait = retry_wait if retry_wait is not None else 5 downloader = FileDownloader(requester=requester, output=out, verify=verify, config=config) checksum = sha256 or sha1 or md5 # The download cache is only used if a checksum is provided, otherwise, a normal download if config and config.download_cache and checksum: downloader = CachedFileDownloader(config.download_cache, downloader, user_download=True) downloader.download(url, filename, retry=retry, retry_wait=retry_wait, overwrite=overwrite, auth=auth, headers=headers, md5=md5, sha1=sha1, sha256=sha256) else: downloader.download(url, filename, retry=retry, retry_wait=retry_wait, overwrite=overwrite, auth=auth, headers=headers) if md5: check_md5(filename, md5) if sha1: check_sha1(filename, sha1) if sha256: check_sha256(filename, sha256) out.writeln("")