FastDFS的工作原理--应用(三)
FastDFS的工作原理–应用
emmm,第一次写三部曲哈哈哈哈。
FastDFS的应用: 一、配置客户端 修改 /etc/fdfs/目录下的client.conf 文件; 修改要点: base_path=/opt/fastdfs_tracker #tracker服务器文件路径 tracker_server=192.168.43.60:22122 #t换成自己的虚拟机的ip和端口号 http.tracker_server_port=8080 # tracker 服务器的 http端口号,必须和tracker的设置对应起来
二、模拟上传 上传图片测试; fdfs_upload_file /etc/fdfs/client.conf /home/antonixu/hello/mx2.jpeg 最后一个文件的路径一定要正确,否则就会找不到; 成功后会返回图片存储路径: 图片的命名大概就是根据这个来的: 测试完毕后,直接在使用java和fastdfs实现交互,简单介绍: FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。 虽然FastDFS的搭建比较繁琐,但是只要搭建成功,剩下的工作就非常简单,我们只需要知道FastDFS的ip地址和文件名就可以快速的完成上传和下载操作; Java具有完备的工具访问FastDFS,相关依赖:
<dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> <version>1.26.6</version> </dependency>
我一开始添加的是1.26的版本的,但是在最后运行的时候发现找不到这个ip+端口号,换了高版本的依赖就可以了。
先创建一个模块,也是client,添加上述依赖之后,编写配置文件:
server.port=9108 spring.application.name=fdfs eureka.instance.instance-id=fdfs eureka.client.service-url.defaultZone=http://127.0.0.1:9100/eureka/ fdfs.trackerList=192.168.191.129:22122 fdfs.connect-timeout=10000 fdfs.so-timeout=8000 fdfs.pool.max-total=200 fdfs.pool.max-total-per-key=20 fdfs.pool.max-wait-millis=25000 fdfs.thumbImage.height=150 fdfs.thumbImage.width=150
fdfs.trackerList=192.168.191.129:22122这个是虚拟机的ip+端口号;
创建启动类:
@Configuration
@Import(value = FdfsClientConfig.class)
@EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)
public class MyConfig {
}
创建控制层:
@Controller
public class TestFDFS {
@Autowired
private FastFileStorageClient storage;
@RequestMapping("fast1")
@ResponseBody
public String fun1(@RequestParam("upfile") MultipartFile mf)throws IOException{
StorePath fn=storage.uploadFile(mf.getInputStream(),mf.getSize(),
FilenameUtils.getExtension(mf.getOriginalFilename()),
null);
return fn.getFullPath();
}
}
注册中心打开之后,会显示一个连接超时的错误,这个错误是因为需要关闭linux的防火墙: 一开始找设置找了半天,后来发现是从终端上关的,吐血。。。
成功了: 在刚才测试的过程中发现了拒绝访问,,,,于是我又重新打开了虚拟机上面的tracker和storage服务就好了,我也不知道是不是这个原因,但是我记得我设置成了开机启动了啊。。。。
