(http.host eq "fw-test.kian.org.uk" and http.request.method in { "POST" "PUT" }) and (not any(lower(http.request.headers.names[*])[*] contains "content-length") or any(http.request.headers["content-length"][*] > "4096"))POST and PUT requests on fw-test.kian.org.uk to a Content-Length less than 4096 (and block any that don't include it at all, will accept 0 for 0-length uploads)

any(http.request.headers["content-length"][*] > 4194304). If there is no Content-Length header - because the body is empty - the expression will evaluate to false.
error configuring Terraform AWS Provider: error validating provider credentials: error calling sts:GetCallerIdentity: operation error STS: GetCallerIdentity, https response error StatusCode: 403, RequestID: aec3d1d9-a733-499a-a35f-ab954b462626, api error InvalidClientTokenId: The security token included in the request is invalid.error creating S3 Bucket (my-tf-test-bucket): NotImplemented: Header 'x-amz-bucket-object-lock-enabled' with value 'false' not implementedx-amz-bucket-object-lock-enabled on?false next weekenv.R2.put(body, {sha256: '<checksum>'})?X-Amz-Content-Sha256 header), so I assume it would be relatively easy to implement it for bindings as well. I don't think the same can be said for calculating the checksum of multipart uploads though.

The Europe (Frankfurt), US East (Ohio), Canada (Central), Europe (London), Asia Pacific (Seoul), Asia Pacific (Mumbai), Europe (Paris), China (Ningxia), Europe (Stockholm), Asia Pacific (Osaka Local), AWS GovCloud (US-East), and Asia Pacific (Hong Kong) Regions were launched after 2013, and support SigV4 but not SigV2. If you have code that accesses S3 buckets in that region, it is already making exclusive use of SigV4.


The HyperText Transfer Protocol (HTTP) 411 Length Required client error response code indicates that the server refuses to accept the request without a defined Content-Length header.
Content-Length header for uploadsfw-test.kian.org.ukContent-LengthContent-LengthContent-Length4096any(http.request.headers["content-length"][*] > 4194304)error configuring Terraform AWS Provider: error validating provider credentials: error calling sts:GetCallerIdentity: operation error STS: GetCallerIdentity, https response error StatusCode: 403, RequestID: aec3d1d9-a733-499a-a35f-ab954b462626, api error InvalidClientTokenId: The security token included in the request is invalid.error creating S3 Bucket (my-tf-test-bucket): NotImplemented: Header 'x-amz-bucket-object-lock-enabled' with value 'false' not implementedx-amz-bucket-object-lock-enabledenv.R2.put(body, {sha256: '<checksum>'})X-Amz-Content-Sha256