Overview
Menu

Image Adaptive WebP

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. For more image conversion formats, please refer to ImageProperties.
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 => {
// When the function code throws an unhandled exception, the Edge function transmits the request back to the origin
event.passThroughOnException();
event.respondWith(handleEvent(event));
});

Example Preview

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.




Related References