# ufop-spring-boot-starter
**Repository Path**: shareal/ufop-spring-boot-starter
## Basic Information
- **Project Name**: ufop-spring-boot-starter
- **Description**: UFOP (Unified File Operation Platform) 统一文件操作平台,通过引入该依赖,可以实现文件操作的统一管理。
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 164
- **Created**: 2023-05-10
- **Last Updated**: 2023-05-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ufop-spring-boot-starter
#### 介绍
UFOP (Unified File Operation Platform) 统一文件操作平台,通过引入该依赖,可以实现文件操作的统一管理
此项目为奇文网盘核心功能,之前有不少人咨询,如何将网盘集成到自己的项目?出于这个目的,就把这块功能剥离出来供大家方便引入,目前实现的主要功能如下:
1. 本地文件上传、下载,删除,预览,重命名,读文件流,写文件流
2. 阿里云OSS上传,下载,删除,预览,重命名,读文件流,写文件流
3. FastDFS上传,下载,删除,预览,重命名,读文件流,写文件流
4. FastDFS+Redis实现集群化部署
5. 图片支持缩略图预览
#### 软件架构
#### 安装教程
mvn clean install org.apache.maven.plugins:maven-deploy-plugin:2.8:deploy -DskipTests
#### 使用说明
1. 引入pom依赖
这里的具体版本号建议引入最新版本
```xml
com.qiwenshare
ufop-spring-boot-starter
{new version}
```
2. application.properties配置文件说明
配置磁盘存储方式, 0-本地存储, 1-阿里云OSS存储, 2-fastDFS存储, 3-minio存储, 4-七牛云KODO对象存储
```properties
ufop.storage-type=0
```
当选择0-本地磁盘存储之后,你还可以继续配置本地文件存储路径
```properties
ufop.local-storage-path=D://test
```
当选择1-阿里云OSS存储之后,需要配置阿里云OSS相关信息,
```properties
#阿里云oss基本配置
ufop.aliyun.oss.endpoint=
ufop.aliyun.oss.access-key-id=
ufop.aliyun.oss.access-key-secret=
ufop.aliyun.oss.bucket-name=
#阿里云oss绑定域名
ufop.aliyun.oss.domain=oss.qiwenshare.com
```
当选择2-FastDFS存储之后,则需要配置FastDFS服务器信息
```properties
#FastDFS配置
fdfs.so-timeout=1501
fdfs.connect-timeout=601
fdfs.thumb-image.width=150
fdfs.thumb-image.height=150
fdfs.tracker-list=127.0.0.1:22122
```
```properties
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=127.0.0.1
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=ma123456
# 连接池最大连接数(使用负值表示没有限制) 默认 8
spring.redis.lettuce.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
spring.redis.lettuce.pool.max-wait=10000
# 连接池中的最大空闲连接 默认 8
spring.redis.lettuce.pool.max-idle=30
# 连接池中的最小空闲连接 默认 0
spring.redis.lettuce.pool.min-idle=10
#连接超时时间(毫秒)
spring.redis.timeout=5000
```
```java
@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
@Bean
public KeyGenerator keyGenerator() {
return (target, method, params) -> {
StringBuilder sb = new StringBuilder();
sb.append(target.getClass().getName());
sb.append(method.getName());
for (Object obj : params) {
sb.append(obj.toString());
}
return sb.toString();
};
}
/**
* 设置 redisTemplate 的序列化设置
* @param redisConnectionFactory redis连接工厂
* @return redisTemplate
*/
@Bean
public RedisTemplate