dave
02/14/2023, 2:45 PM{ cf: { lol: true }}
part isn't spoofable?kian
02/14/2023, 2:45 PMts
export default <ExportedHandler> {
fetch(req) {
return Response.json(req.cf);
}
}
ts
interface Environment {
FOO: Fetcher
}
export default <ExportedHandler<Environment>> {
fetch(req, env) {
return env.FOO.fetch(req.url, { cf: { lol: true }})
}
}
Output:
json
{"lol":true}
kian
02/14/2023, 2:48 PMreq.cf
is populated on the inbound request by Cloudflare - and since Service Bindings don't 'go through' Cloudflare's normal request flow, it'll only exist on the Worker you're invoking if you pass it yourselfkian
02/14/2023, 2:48 PMdave
02/14/2023, 2:49 PMo0th
02/14/2023, 3:14 PMwrangler.toml
for this two routes?
routes = [
{ pattern = "*/something/*", zone_id = "xxx" },
{ pattern = "domain.com/*/something/*", zone_name = "domain.com" }
]
Because I cannot use zone_id
for the second and zone_name
for the first while publishing my worker 😦Tomleads
02/14/2023, 3:33 PMErisa | Support Engineer
02/14/2023, 3:33 PMzelnaut
02/14/2023, 3:55 PMTransformStream
, I wouldn't know the file size ahead of time. Anyone have any ideas/suggestions?kian
02/14/2023, 3:57 PMkian
02/14/2023, 3:58 PMzelnaut
02/14/2023, 3:59 PMkian
02/14/2023, 3:59 PMkian
02/14/2023, 4:00 PMdave
02/14/2023, 4:26 PMThis ReadableStream is disturbed (has already been read from), and cannot be used as a body.
.
typescript
let request_body = request.body;
if(request_body && !cleaned_headers.has("X-Amz-Content-Sha256")) {
let hash_body;
[request_body, hash_body] = request_body.tee();
const digestStream = new crypto.DigestStream("SHA-256");
hash_body.pipeTo(digestStream);
const digest = await digestStream.digest; // This could be a problem for bundled usage
const hexString = [...new Uint8Array(digest)].map(b => b.toString(16).padStart(2, '0')).join('')
cleaned_headers.set("X-Amz-Content-Sha256", hexString)
}
const lambdaResponse = await aws.fetch(target_url, {
method: request.method,
headers: cleaned_headers,
body: request_body,
redirect: "manual"
})
dave
02/14/2023, 4:28 PMdave
02/14/2023, 4:44 PMdave
02/14/2023, 4:51 PMrequest_body
correctly?dave
02/14/2023, 4:58 PMdave
02/14/2023, 5:00 PMdave
02/14/2023, 5:00 PMkian
02/14/2023, 5:06 PMkian
02/14/2023, 5:06 PMkian
02/14/2023, 5:07 PMdave
02/14/2023, 5:08 PMdave
02/14/2023, 5:08 PMdave
02/14/2023, 5:08 PMNosh
02/14/2023, 9:44 PMErisa | Support Engineer
02/14/2023, 9:45 PM