Repository navigation
Presigned PUT URLs can now bind the upload size (#11).
BlobPresignPutInput takes an optional contentLength. When set, the R2 and S3 presigners sign Content-Length together with Content-Type, so the storage rejects an upload whose body has any other size. Browsers send Content-Length automatically. A length that is not a non-negative safe integer fails with BlobPresignError.
Without contentLength, URLs are signed exactly as before.