前言:之前公司在做一个证照系统的时候,为满足性能,搭建了一个fastdfs的环境供开发使用,此后的开发完全调用公司前辈写好的接口,但对于如何搭建fastdfs的环境并没有尝试,正好处于项目间隙,抽出时间自己尝试搭了个环境,并写了个java demo供上传测试,期间过程踩了很多坑,原因是网上很多教程写的并不详细,也没有交代这样配置的前后原因,只能一步一步摸索,在搭建过程中也慢慢理解了storage,tracker,client之间的关系。
搭建成功主要参考了两位前辈的blog,这里贴上链接,搭建过程非常详细:
(PS:主要是比较懒,记录这个blog也只是方便自己搭建环境使用,以后有空会把详细的一步一步加上)
【FastDFS篇】FastDFS单节点安装及使用
https://blog.csdn.net/chenshi_2753/article/details/79591084
http://blog.mayongfa.cn/83.html
搭建完成后通过java代码测试:
需要夹包fastdfs_client_v1.24.jar,该夹包在官网上并没有,只提供了源码,需要我们自己maven成夹包,这个网上有很多教程。
还需要从源码中复制一个配置文件fdfs_client.conf,进行修改
connect_timeout = 2
network_timeout = 30
charset = UTF-8
http.tracker_http_port = 8888
http.anti_steal_token = no
http.secret_key = FastDFS1234567890
tracker_server = 192.168.10.64:22122
其中http.tracker_http_port = 8888 这个端口号为nginx的端口号
java代码为:
public static void main(String[] args) throws Exception {
ClientGlobal.init("F:/workspace/test/src/resource/fdfs_client.conf");
// 2.创建一个TrackerClient对象
TrackerClient trackerClient = new TrackerClient();
// 3.创建一个TrackerServer对象
TrackerServer trackerServer = trackerClient.getConnection();
// 4.声明一个StorageServer对象,为null
StorageServer storageServer = null;
// 5.获得StorageClient对象
StorageClient storageClient = new StorageClient(trackerServer, storageServer);
// 6.直接调用StorageClient对象方法上传文件即可。
String[] strs = storageClient.upload_file("C:/Users/xxx/Desktop/test.jpg", "jpg", null);
// 7.可以打印出文件的地址,可以拼成URL访问
for (String str : strs) {
System.out.println(str);
}
}
直接运行即可上传文件
控制台显示
表示上传成功
浏览器直接敲url:http://192.168.10.64:8888/group1/M00/00/00/wKgKQFr1YzOATgA-AABlB9kTpNU740.jpg
显示
完成!!!