一、基本介绍
在实际生产中,分布式文件一般不会直接放在本地加密存储而是保存在某个文件系统之上。这里介绍下对象存储minio。
二、代码中的体现
文件上传模块如下:

upms模块的用户头像也是上传到minio



三、docker部署

# 注意版本号,此版本为 Apache 2.0 协议可以商用
docker run -p 9000:9000 --name minio1 \
-e "MINIO_ROOT_USER=xxx" \
-e "MINIO_ROOT_PASSWORD=xxx" \
registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/minio:RELEASE.2021-04-22T15-44-28Z server /data
四、测试
安装后使用浏览器访问 http://ip:9000,如果可以访问,则表示 minio 已经安装成功。
账号/密码为上边指定的 access-key(minioadmin) secert-key(xxx)
- 创建bucket(我这里是创建了个test)并分配权限public
- 尝试上传本地文件:


五、修改upms上传方式
-
配置文件配置 minio 信息
进入Nacos,修改upms模块的配置:
file:
bucketName: test # 上文创建的桶名称
oss:
enable: true # v4.4 开启OSS 上传
endpoint: http://${ip}:9000
access-key: minioadmin
secret-key: zysxxx
- 发布后重启upms admin生效:

- 进入前端登陆后修改头像,提交成功:

六、上传代码使用
<!--文件系统-->
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pigx-common-oss</artifactId>
</dependency>
// 低版本注入 OssTemplate
@Autowired
private FileTemplate template;
template.putObject("s3demo", fileName, file.getInputStream());
七、FileTemplate 方法说明
| 方法名 | 作用 | 参数 |
|---|---|---|
| createBucket | 创建 bucket | bucketName: bucket 的名称 |
| getAllBuckets | 获取所有的 bucket | |
| getBucket | 根据 bucket 名称获取 bucket | bucketName: bucket 的名称 |
| removeBucket | 删除指定的 bucket | bucketName: bucket 的名称 |
| getAllObjectsByPrefix | 根据文件前缀查询文件 | bucketName: bucket 的名称 prefix: 文件前缀 recursive: 是否递归查询 |
| getObjectURL | 获取文件的外链 | bucketName: bucket 的名称 objectName: 文件名称 expires: 过期时间(0-7) |
| getObject | 获取文件 | bucketName: bucket 的名称 objectName: 文件名称 |
| putObject | 上传文件 | bucketName: bucket 的名称 objectName: 文件名称 stream: 文件流 size: 大小 contextType: 类型 |
| getObjectInfo | 获取文件信息 | bucketName: bucket 的名称 objectName: 文件名称 |
| removeObject | 删除文件 | bucketName: bucket 的名称 objectName: 文件名称 |
| afterPropertiesSet | 初始化方法,在设置属性之后会被调用,用于创建 AmazonS3 实例 |

3252

被折叠的 条评论
为什么被折叠?



