能否用配置实现图片的上传位置,比如我配置local,就上传到本地,配置ali,就传到阿里云?

能否用配置实现图片的上传位置,
比如我配置local,就上传到本地,
配置ali,就传到阿里云?

肯定能,这不是你自己写代码实现的东西吗?

我是来要具体实现思路的,hiahiahia

?你配置一个属性在后台配置文件就行

if local {
 // 上传本地
} else {
 // 上传OSS
}

你这一点不优雅

想要优雅点也行,先写一个接口,local一个实现类,ali一个实现类,依据yml配置,向spring 里面注入不同的bean, 使用的时候使用接口。

:smiley:

策略模式 或者 过滤器链模式 完美解决啊

1 个赞

具体思路要看环境的,比方说你k8s部署了你的项目,底层的文件系统必然就是ceph了,那根本就不需要传到阿里云了,ceph本身就是安全的分布式文件系统,这种情况你就开辟一个路径,把这个路径通过k8s挂载到你的ceph文件系统,你如果使用的是传统Tomcat之类,而你又有钱买阿里云存储,那不妨更进一步,买他的k8s服务不更好吗?同时解决部署和文件系统问题

用七牛,便宜

肯定可以啊,使用面像接口的思路,大体步骤是:

  1. 先定义好上传文件的接口
  2. 再分别开发本地上传、阿里云上传、等等的实现类
  3. 再通过配置文件来选择启用的文件上传的实现类,具体启用方法:
    可以使用工厂设计模式或者使用spring boot的@ConditionalOnExpression注解来启用

嗯蟹蟹大佬