关于 MINIO
PIG 提供的文件上传功能是基于分布式对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。(本人公司大规模生产使用,数据量 TB 级别)
下载部署minio
# 注意版本号,此版本为 Apache 2.0 协议可以商用
docker run -p 9000:9000 --name minio1 \
-e "MINIO_ROOT_USER=lengleng" \
-e "MINIO_ROOT_PASSWORD=lengleng" \
minio/minio:RELEASE.2021-04-22T15-44-28Z server /data
访问验证
安装后使用浏览器访问 http://ip:9000,如果可以访问,则表示 minio 已经安装成功。
账号/密码为 minioadmin minioadmin
创建 Bucket (存储空间)
配置文件配置 minio 信息
- nacos/pig-upms-dev.yml
# 文件系统
oss:
path-style-access: true #使用云OSS 需要关闭
endpoint: http://IP:9000
access-key: minioadmin
secret-key: minioadmin
bucketName: test
其他模块上传代码使用
<!--文件管理-->
<dependency>
<groupId>com.pig4cloud.plugin</groupId>
<artifactId>oss-spring-boot-starter</artifactId>
</dependency>
@Autowired
private final OssTemplate template;
/**
* 上传文件
* 文件名采用uuid,避免原始文件名中带"-"符号导致下载的时候解析出现异常
*
* @param file 资源
* @return R(bucketName, filename)
*/
@PostMapping("/upload")
public R upload(@RequestParam("file") MultipartFile file, HttpServletRequest request) {
template.putObject(CommonConstants.BUCKET_NAME, fileName, file.getInputStream());
return R.ok(resultMap);
}