百度云加速边缘计算函数规则:使用边缘计算缓存应用实例

百度云加速新出的边缘计算功能确实不错,可操作性非常强。今天我们来学习下如何利用这个功能给网站做缓存。

首先我们先创建函数,在我们的控制台左边,我的函数,添加

百度云加速边缘计算函数规则:使用边缘计算缓存应用实例插图

函数名随便写

百度云加速边缘计算函数规则:使用边缘计算缓存应用实例插图1然后进入编辑这个函数:

百度云加速边缘计算函数规则:使用边缘计算缓存应用实例插图2

输入代码保存,代码如下:

async function handleRequest(event) {
    const { request } = event
    // POST请求不缓存
    if (request.method.toUpperCase() === 'POST')
        return await fetch(request)
     // 创建cacheKey
    let cacheUrl = new URL(request.url)
    let cacheKey = new Request(cacheUrl, request)
    let cache = caches.default
    // 查找是否该cacheKey已缓存
    let response = await cache.match(cacheKey)
    // 如果没缓存则加入到缓存
    if (!response) {
        response = await fetch(request)
        response = new Response(response.body, response)
        // 添加过期时间
        response.headers.append('Cache-Control', 'max-age=10')
        // 加入到缓存
        event.waitUntil(cache.put(cacheKey, response.clone()))
    }
    return response
}
addEventListener('fetch', event => {
    return event.respondWith(handleRequest(event))
})
再返回控制台,我的网站,进入域名管理,左边的边缘计算

百度云加速边缘计算函数规则:使用边缘计算缓存应用实例插图3
添加触发规则,选择刚才添加的函数名,确认即可
百度云加速边缘计算函数规则:使用边缘计算缓存应用实例插图4
匹配内容写你要缓存的URL地址加通配符,即可完成。

URL 匹配规则说明:

规则绑定形如: https://*.example.com/images/*

一般规则:
1、规则里必须包含域名,如example.com/1.jpg。
2、规则里不能包含参数,如example.com/?anything是不合法的。
3、规则中如果不包含协议,则会匹配http和https;如果指定协议,则只匹配指定的协议。如www.example.com/会同时匹配https://www.example.com/和http://www.example.com/,https://www.example.com/只匹配https://www.example.com/而不会匹配http://www.example.com/。

关于通配符「*」:
1、仅支持通配符,代表0个或多个任意字符。
*不能用于中缀或参数的匹配,如example.com/*.jpg或example.com/?foo=*都是不合法的。
2、多条规则都匹配时,优先匹配更精确的规则,如www.example.com/*的匹配优先级高于*.example.com/*。
3、*匹配前缀时,*example.com/会同时匹配https://example.com/和https://www.example.com/;*.example.com/只会匹配https://www.example.com/而不匹配https://example.com/。
4、*匹配后缀时,https://example.com/path*,会同时匹配https://example.com/path2和https://example.com/path/readme.txt;https://example.com/path/*,则只匹配https://example.com/path/readme.txt而不匹配https://example.com/path2。

原创文章,作者:jamestackk,如若转载,请注明出处:https://blog.ytso.com/249397.html

(0)
上一篇 2022年4月22日
下一篇 2022年4月22日

相关推荐

发表回复

登录后才能评论