Пример #1
0
    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")
Пример #2
0
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)
Пример #3
0
 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("")
Пример #4
0
 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)
Пример #5
0
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)
Пример #6
0
 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("")
Пример #7
0
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)
Пример #8
0
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)
Пример #9
0
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("")