本文研究的主要是java fastdfs客户端使用实例的相关内容,具体实现如下。
什么是FastDFS?
FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
FastDFS架构
FastDFS架构包括 Tracker server和Storage server。客户端请求Tracker server进行文件上传、下载,通过Tracker server调度最终由Storage server完成文件上传和下载。Tracker server作用是负载均衡和调度,通过Tracker server在文件上传时可以根据一些策略找到Storage server提供文件上传服务。可以将tracker称为追踪服务器或调度服务器。Storage server作用是文件存储,客户端上传的文件最终存储在Storage服务器上,Storage server没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。可以将storage称为存储服务器。
实例
一、创建一个maven的webproject,叫
file-manager:mvnarchetype:create-DgroupId=platform.activity.filemanager-DartifactId=file-manager-DarchetypeArtifactId=maven-archetype-webapp
二、定义一个fastDFS的客户端文件fdfs_client.conf:
class="properties" name="code">connect_timeout = 2
network_timeout = 30
charset = UTF-8
http.tracker_http_port = 8080
http.anti_steal_token = no
http.secret_key = FastDFS1234567890
tracker_server = 192.168.1.156:22122
#tracker_server = 192.168.1.188:22122
#storage_server = 192.168.1.155:23000 #no need here
三、定义一个配置接口:
package com.chuanliu.platform.activity.fm.manager;
import java.io.Serializable;
public interface FileManagerConfig extends Serializable {
public static final String FILE_DEFAULT_WIDTH = "120";
public static final String FILE_DEFAULT_HEIGHT = "120";
public static final String FILE_DEFAULT_AUTHOR = "Diandi";
public static final String PROTOCOL = "http://";
public static final String SEPARATOR = "/";
public static final String TRACKER_NGNIX_PORT = "8080";
public static final String CLIENT_CONFIG_FILE = "fdfs_client.conf";
}
四、封装一个FastDFS文件Bean
package com.chuanliu.platform.activity.fm.manager;
public class FastDFSFile implements FileManagerConfig {
priva