介绍
数式Oinone默认提供了阿里云、腾讯云、华为云、又拍云、Minio和本地文件存储这几种文件存储系统,如果我们有其他的文件存储系统需要对接,或者是扩展现有的文件系统,可以通过SPI
继承AbstractFileClient
注册新的文件存储系统。
代码示例
这里以扩展自有的本地文件系统为例
继承了内置的本地文件存储LocalFileClient
,将其中上传文件的方法重写
package pro.shushi.pamirs.demo.core.file;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest;
import pro.shushi.pamirs.framework.connectors.cdn.client.LocalFileClient;
import pro.shushi.pamirs.meta.annotation.fun.extern.Slf4j;
import pro.shushi.pamirs.meta.common.spi.SPI;
import javax.servlet.http.HttpServletRequest;
@Slf4j
@Component
// 注册新的文件存储系统类型
@SPI.Service(DemoLocalFileClient.TYPE)
@RestController
@RequestMapping("/demo_file")
public class DemoLocalFileClient extends LocalFileClient {
public static final String TYPE = "DEMO_LOCAL";
@ResponseBody
@RequestMapping(value = "/upload", produces = "multipart/form-data;charset=UTF-8",method = RequestMethod.POST)
public String uploadFileToLocal(HttpServletRequest request) {
MultipartFile file = ((StandardMultipartHttpServletRequest) request).getFile("file");
// 例如可以根据file文件类型判断哪些文件是否可以上传
return super.uploadFileToLocal(request);
}
}
在application.yml内配置
cdn:
oss:
name: 本地文件系统
# 这里的type与代码中定义的文件存储系统类型对应
type: DEMO_LOCAL
bucket: pamirs
uploadUrl: http://127.0.0.1:8190
downloadUrl: http://127.0.0.1:6800
validTime: 3600000
timeout: 600000
active: true
referer:
localFolderUrl: /Users/demo/workspace/static
Oinone社区 作者:nation原创文章,如若转载,请注明出处:https://doc.oinone.top/backend/18537.html
访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验