SHA-256 digest of raw bytes, hex-encoded.
R2 (#705): non-JSON request bodies (multipart uploads, body-less DELETEs) are hashed as their raw bytes, not as a parsed-JSON object, so a retry with a genuinely different upload cannot silently replay.
SHA-256 digest of raw bytes, hex-encoded.
R2 (#705): non-JSON request bodies (multipart uploads, body-less DELETEs) are hashed as their raw bytes, not as a parsed-JSON object, so a retry with a genuinely different upload cannot silently replay.