fix(oss): 删除文件后清除缓存防止查询命中已删除数据

This commit is contained in:
liyong 2026-09-14 14:57:39 +08:00
parent e3bc391887
commit 3bc4799436

View File

@ -21,6 +21,7 @@ import org.dromara.common.oss.enums.AccessPolicy;
import org.dromara.common.oss.factory.OssFactory;
import org.dromara.common.oss.model.Options;
import org.dromara.common.oss.model.PutObjectResult;
import org.dromara.common.redis.utils.CacheUtils;
import org.dromara.system.api.OssService;
import org.dromara.system.api.domain.OssDTO;
import org.dromara.system.domain.SysOss;
@ -312,7 +313,12 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
for (SysOss sysOss : list) {
OssFactory.instance(sysOss.getService()).delete(sysOss.getFileName());
}
return ossMapper.deleteByIds(ids) > 0;
boolean flag = ossMapper.deleteByIds(ids) > 0;
if (flag) {
// 删除成功后需清除缓存否则 getById 仍会命中缓存返回已删除的文件信息
list.forEach(sysOss -> CacheUtils.evict(CacheNames.SYS_OSS, sysOss.getOssId()));
}
return flag;
}
/**