发表于: 2020-07-13 22:43:56
1 1882
今天完成的事情
1. 完成了七牛云的图片上传
2. 做了对象存储的配置切换
/**
* @ClassName OSSServiceContainer
* @Description OSSService 容器
* @Author owlwinter
* @Date 2020/7/13 16:07
* @Version 1.0
**/
@Component
public class OSSServiceContainer {
private static final Logger logger = LogManager.getLogger(OSSServiceContainer.class);
@Value("${oss.select}")
private String ACTIVATE;
@Autowired
private Map<String, OSSService> ossServiceMap;
public OSSService getOSSService(){
if (ossServiceMap.containsKey(ACTIVATE)){
return ossServiceMap.get(ACTIVATE);
} else {
Set<String> keys = ossServiceMap.keySet();
logger.error("所选 OSS 不存在或未注入 ACTIVATE:{} keys:{}", ACTIVATE, keys);
}
return null;
}
}
spring 引入一个配置文件,然后修改这个配置文件就可以切换对象存储了。
3. 做了图片的对象存储域名的切换
layout.jsp
<c:if test="${ctx == null}">
<c:set var="ctx" value="${pageContext.request.contextPath}" scope="session"/>
</c:if>
然后只需要再代码中插入一个 ctx 的 ModelAndView 就可以实现对象存储域名的切换。不使用任何对象存储的时候不需要插入,这样就自动切换到本地存储。
域名保存在配置文件里面。
遇到的问题
1. 为什么要自己做一个存储迁移程序,各大厂商都有迁移其他服务商 OSS 的工具
a,熟悉 IO 流的操作
b,满足一些特殊的迁移需求
c,熟悉 SDK 的使用
2. xml 注入 bean 的属性
factory-method
init-method
lazy-init
这些不了解,今天勉强用了一下
收获
无
明天的计划
1. 完成图片迁移工具的编写
这个应该是一个独立的应用,与 springmvc 无关
2. 修 BUG
有个数据的缓存有点问题,不影响使用所以今天没管这个
3. 深度思考
如果可以的话
评论