Skip to content

Instantly share code, notes, and snippets.

@bendytree
Created May 10, 2022 14:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save bendytree/aef20bcd566255198b57ebe452da188c to your computer and use it in GitHub Desktop.
Save bendytree/aef20bcd566255198b57ebe452da188c to your computer and use it in GitHub Desktop.
CloudFlare worker to rewrite Host header for S3
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
const lookup = {
"mybucket.example.com": "https://my-s3-bucket.s3.us-east-1.amazonaws.com",
};
async function handleRequest(origRequest) {
const origUrl = new URL(origRequest.url);
const newOrigin = lookup[origUrl.hostname];
let request = origRequest;
if (newOrigin) {
const newUrl = origRequest.url.replace(origUrl.origin, newOrigin);
request = new Request(newUrl, {
body: origRequest.body,
headers: origRequest.headers,
method: origRequest.method,
redirect: origRequest.redirect
});
}
const response = await fetch(request);
// console.log({ response });
return response;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment