把上次做的图片的API改成国内版,让图片返回速度提升一个档次
怎么提升图片的API的返回速度
1.停用Cloudflare
Cloudflare不要无脑用,CDN加速不是都适用
昨天听大神Feng的小屋的话,把网站的DNS从cloudflare重新迁回阿里云了。然后我就发现网站的速度非常快,但是图片的API接口不使用魔法工具的情况下速度很慢,甚至加载不出来。毫无疑问,肯定是我用Cloudflare的workers的问题。
既然国外的用不了,那我就换用国内的!
2.寻找替代品
Github的替代Gitee!Cloudflare的替代腾讯云!
1.Gitee配置
首先注册一个Gitee账户,用Github就可以了。然后我们在主页点击加号导入上一次的图片仓库。忘记的话可以看这里怎么用Github和CloudFlare做一个返回自己图库随机图片的API,并使用jsdelivr进行CDN加速。
进来之后选择导入github仓库,然后看一下我们存图片的仓库,选择后面的导入。
导入成功以后,我们进入管理选项,划到最下方,把仓库改为开源,否则后续调用的时候会出现403错误。
2.腾讯云配置
进入腾讯云登陆注册,进入Serverless函数栏。没有直接跳转的,可以分成下面几步来操作。
进入函数服务后,我们就可以从头开始了,函数名称可以自己改,地域可以换个离自己近一些的。点击同意协议就可以开始了。
这里我们选择函数代码,修改 index.py 文件,把下面的代码复制进去。完成后点击下方测试,输出没问题就可以了。
import json
import random
def main_handler(event, context):# 设置图片总数total_images = 15# 生成随机图片IDrandom_image_id = random.randint(1, total_images)# 构建Gitee图片URL,https://gitee.com/wctw-hub/picture/raw/main/blog/按自己的实际修改image_url = f"https://gitee.com/wctw-hub/picture/raw/main/blog/{random_image_id}.webp"# 返回302重定向return {'statusCode': 302,'headers': {'Location': image_url,'Access-Control-Allow-Origin': '*','Cache-Control': 'no-cache'},'body': ''}
然后选择函数URL,下面的可以参考我的填写。
最后就是获取访问路径了。两个公网访问,随便选择一个就可以。复制到浏览器,图片正常就可以了。
3.可能出现的返回403
403是因为Gitee仓库权限设置的是“私人”,我当时没注意就出现过这个问题。其他的问题我没碰上过,所以这里先不写。
如果有新的问题欢迎留言,我们一起解决。{{weixiao}}