HTTP transfers ============== Resumable HTTP downloads ------------------------ :func:`~automation_file.download_file` accepts ``resume=True``. Bytes are written to ``.part``; if the tempfile already exists the next call sends ``Range: bytes=-`` so the transfer picks up where it left off. Combined with ``expected_sha256=`` the download is verified immediately after the last chunk is written: .. code-block:: python from automation_file import download_file download_file( "https://example.com/big.bin", "big.bin", resume=True, expected_sha256="3b0c44298fc1...", ) Every URL passes through :func:`~automation_file.remote.url_validator.validate_http_url`, blocking ``file://`` / ``ftp://`` / ``data:`` schemes and IPs in private, loopback, link-local, reserved, multicast, or unspecified ranges. Default 20 MB response cap and 15 s connection timeout. TLS verification is never disabled. Transfer progress and cancellation ---------------------------------- Pass ``progress_name="