目录已经实现本地存储、Minio云存储、阿里云、腾讯云、七牛云、华为云等文件存储服务。
公共配置
下面是文件存储的公共配置信息,具体含义如下:
storage.enabled
是否开启存储服务storage.config.type
存储类型,可选值【local、minio、aliyun、tencent、qiniu、huawei】storage.config.domain
访问域名,具体可以在第三方云服务里面配置,或者使用云服务提供的免费域名。如果是local
,则为后端服务器地址。storage.config.prefix
文件上传前缀,如:前缀为images
,则访问路径会自动追加images
前缀
storage:
enabled: true
config:
type: local
domain: http://localhost:8080
prefix:
API接口
引入组件后,我们就可以在程序里面调用,下面是存储API接口,如下所示:
/**
* 存储服务API
*
* @author 阿沐 babamu@126.com
*/
@FeignClient(name = ServerNames.SYSTEM_SERVER_NAME)
public interface StorageApi {
/**
* 文件上传
*/
@PostMapping(value = "api/storage/upload", produces = {MediaType.APPLICATION_JSON_VALUE},
consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Result<StorageDTO> upload(@RequestPart("file") MultipartFile file) throws IOException;
class MultipartSupportConfig {
@Bean
public Encoder feignFormEncoder() {
return new SpringFormEncoder();
}
}
}
API接口调用
下面提供了调用Feign接口的DEMO,如下所示:
@Service
@AllArgsConstructor
public class FileUploadService {
private final StorageApi storageApi;
public void upload(MultipartFile file) {
String url = storageApi.upload(file);
}
}