首先明确一下思想,这个头像是我们从cache里面拿到的,而缓存中的数据是oss的方式下载再转换成base64的数据格式存储在缓存里面的
因为是oss获取数据的,所以我们要去阿里云网站弄一下oss,先把oss服务开启,接着去找sdk,从那里cv一下代码
遇到api文档记得要去看对应的sdk
阿里云的sdk告诉我们,想要使用的话必须要有凭证,所以我们要新建ram用户创建凭证,凭证有三种方式,我们要选长期的那个,长期的那个验证需要2个key,我们要在环境变量中把长期的那2个key给配置好,之后sdk的cv过来的代码才会有效
sdk代码👇,所谓的上传照片就是代码中写的方法,去调用阿里云给我们的方法就可以实现上传
完事之后最好写一个test方法来测试一下是否上传成功
由于上传的东西不是死的,所以阿里云那边cv过来的代码我们要传递的参数也要修改一下,改成圈的东西,因为我们头像是下载下来的,如果要下载的话就得提供bucket name之类的,所以我们要把对应的东西设置成要传递的参数
如果正确就更新用户的头像地址存放在user数据库表里面,后面想拿就可以随时拿了
但是这样做的话有个问题,每当我们想去看头像的时候都得去数据库拿一下,这样每次都会向数据库发送请求来下载图片,这样做性能就不是很好了
因此为了解决这个性能问题,我们在登录的时候就去下载到session,之后要用就直接在session里面拿就可以了
这样一来前端就可以通过el表达式把session里面的头像数据给取出来了