实现文件上传功能
一个轻量级的分布式文件系统,对文件进行管理,文件存储,访问,同步。有冗余备份,负载均衡,线性扩容机制。包括Tracker Server和Storage Server。利用操作系统的的文件系统来管理文件。
文件上传流程:
- storage定时向tracker发送状态消息
- 客户向tracker发送请求
- tracker查看可用storage
- tracker返回storage的ip和端口
- 客户向storage上传文件
- storage生成fileid
- storage将文件写入磁盘
- storage返回fileid
- 客户存储fileid
fileid=组名+虚拟磁盘路径+数据两级目录+storage生成的文件名
文件存储微服务的搭建
需要添加的依赖:
- spring-boot-starter-web
- fastdfs-client-java
- xxx_common //公共模块
配置文件:
- connect_timeout = 60 //客户端与fast连接超时时间为60s
- network_timeout = 60 //通信超时时间60s
- charset = UTF-8
- http.tracker_http_port = 8080
- tracker_server = 192.168.200.128:233233 //搭建服务配置的端口号
springboot的配置文件
spring:
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
server:
port: 9008
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:6868/eureka
instance:
prefer-ip-address: true
feign:
hystrix:
enabled: true
存储文件的启动类
@SpringBootApplication
@EnableEurekaClient
public class FileApplication {
public static void main(String[] args) {
SpringApplication.run(FileApplication.class);
}
}
文件上传的工具类
首先创建文件的实体类<