This example determines whether the request header Accept contains image/webp. If so, the Edge Function will automatically convert the image format to WebP and cache it on the EdgeOne edge node. If your Web application displays a large amount of PNG and JPEG format images and you want to automatically optimize the images at the edge to reduce traffic bandwidth costs, you can use Edge Functions to implement a smooth upgrade, automatically converting PNG and JPEG format images to WebP format with 0 changes to the business code.
async function handleEvent(event) {
const { request } = event;
// Get the image type supported by the client
const accept = request.headers.get('Accept');
const option = { eo: { image: {} } };
// Check whether the client supports WebP format images, if not, respond with the original image
if (accept && accept.includes('image/webp')) {
option.eo.image.format = 'webp';
}
const response = await fetch(request, option);
return response;
}
addEventListener('fetch', event => {
event.passThroughOnException();
event.respondWith(handleEvent(event));
});
Enter the URL that matches the triggering rules of the Edge Function in the address bar of the browser on the PC side and mobile side (e.g., https://example.com/images-format/ef-1.jpeg), and the image will be automatically converted to Webp format.