Commit 9512efc2 authored by tangtuo's avatar tangtuo

修改头像时删除旧头像

parent edcfe5c7
...@@ -19,10 +19,12 @@ import com.fzm.common.enums.ResultCode; ...@@ -19,10 +19,12 @@ import com.fzm.common.enums.ResultCode;
import com.fzm.common.exception.GlobalException; import com.fzm.common.exception.GlobalException;
import com.fzm.common.mapper.UserMapper; import com.fzm.common.mapper.UserMapper;
import com.fzm.common.params.LoginParam; import com.fzm.common.params.LoginParam;
import com.fzm.common.properties.OssProperties;
import com.fzm.common.properties.SmsProperties; import com.fzm.common.properties.SmsProperties;
import com.fzm.common.service.AuthPersonService; import com.fzm.common.service.AuthPersonService;
import com.fzm.common.service.UserService; import com.fzm.common.service.UserService;
import com.fzm.common.utils.JwtUtil; import com.fzm.common.utils.JwtUtil;
import com.fzm.common.utils.OssUtil;
import com.fzm.common.utils.RedisUtil; import com.fzm.common.utils.RedisUtil;
import com.fzm.common.utils.SmsUtil; import com.fzm.common.utils.SmsUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -67,6 +69,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us ...@@ -67,6 +69,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Resource @Resource
private HttpServletRequest request; private HttpServletRequest request;
@Resource
private OssUtil ossUtil;
@Resource
private OssProperties ossProperties;
@Override @Override
public User loadUserByUsername(String username) { public User loadUserByUsername(String username) {
QueryWrapper<User> wrapper = new QueryWrapper<>(); QueryWrapper<User> wrapper = new QueryWrapper<>();
...@@ -162,12 +170,16 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us ...@@ -162,12 +170,16 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Override @Override
public User uploadAvatar(String avatar) { public User uploadAvatar(String avatar) {
Integer loginId = JwtUtil.getUserIdFromToken(request.getHeader("Authorization")); User loginUser = getUserByToken();
// 如果不是第一次上传头像,需要删除旧头像
if (StringUtils.isNotBlank(loginUser.getAvatar())) {
ossUtil.delete(loginUser.getAvatar(), ossProperties.getSimpleBucket());
}
User user = new User(). User user = new User().
setAvatar(avatar). setAvatar(avatar).
setId(loginId); setId(loginUser.getId());
updateById(user); updateById(user);
return getById(loginId); return getById(loginUser.getId());
} }
@Override @Override
......
...@@ -185,6 +185,18 @@ public class OssUtil { ...@@ -185,6 +185,18 @@ public class OssUtil {
} }
} }
public void delete(String fileUrl, String bucketName) {
String endpoint = ossProperties.getEndPoint();
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
String accessKeyId = ossProperties.getAppKey();
String accessKeySecret = ossProperties.getAppSecret();
// <yourObjectName>上传文件到OSS时需要指定包含文件后缀在内的完整路径,例如20210629/a8703bcf7d354ea2bbb5ccdf76b7405f/123.jpg。
String objectName = fileUrl.replace(String.format("https://%s.%s/", bucketName, endpoint), "");
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ossClient.deleteObject(bucketName, objectName);
}
public static void main(String[] args) { public static void main(String[] args) {
String endpoint = "oss-cn-shanghai.aliyuncs.com"; String endpoint = "oss-cn-shanghai.aliyuncs.com";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment