Summary
Improves HTTP resume and multi-connection download compatibility with redirecting endpoints and unreliable modification timestamps. Download failures now provide more specific diagnostics. No configuration or RPC schema changes are required.
Fixed
- Avoid premature HTTP 412 failures from gateways that reject file preconditions before redirecting, using standard If-Range requests for conditional range downloads.
- Prevent per-request modification timestamps from being mistaken for reliable resource-version identifiers. Date-based validators must precede the response Date by at least 60 seconds.
- Correct range acceptance when a response starts at an unexpected byte offset.
- Reject conditional full responses that no longer confirm the requested resource identity, preserving existing partial data.
Changed
- Use libcurl’s native response-header API to separate file metadata from proxy CONNECT, informational, and trailer headers.
- Distinguish ETag changes, unavailable validators, modification-date changes, file-size conflicts, invalid ranges, and rejected HTTP preconditions in download errors.
- Include transfer identifiers and relevant conditional headers in diagnostics while retaining credential and signed-URL redaction.
Concurrency control, retry scheduling, tail assistance, and overwrite permissions are unchanged. Downloads without usable validators remain best-effort; matching file sizes alone do not establish content identity.