Java--上传图片至FastDFS的storage server存储器

Linux下启动:Nginx(反向代理服务器),tracker(FastDFS调度中心) 和 storage(FastDFS的数据存储) 服务


Nginx




Tracker




Storage





客户端,Java Web


本地图片上传至FastDFS分布式文件系统的storage服务器,需要借助




fastdfs相关的所有资料 可以查看下载地址  :  点击打开链接



手动在本地Maven仓库里为fastdfs_client_1.25.jar包建立一个 Maven  Project(jar)


fastdfs_client_1.25.pom

   
  4.0.0   
  fastdfs_client   
  fastdfs_client   
  1.25   
 

根据fastdfs_client_1.25.pom文件里面的节点依次创建目录


Java--上传图片至FastDFS的storage server存储器_第1张图片




手动创建后,在当前我们的web工程里面的Pom文件里面依赖一下


Java--上传图片至FastDFS的storage server存储器_第2张图片



jar包引用好后,我们开始测试



(1)在项目的资源文件中,添加FastDFS的客户端配置文件,指定要使用哪一个(IP:Port)tracker(调度器)


Java--上传图片至FastDFS的storage server存储器_第3张图片



client.conf  (下面是我虚拟机上的tracker服务 IP,端口一般都是默认的22122)

tracker_server=192.168.153.134:22122

(2)本地C盘放一张测试图片


Java--上传图片至FastDFS的storage server存储器_第4张图片



(3)demo实现图片的上传


FastDFSTest.java


package com.taotao.fastdfs;

import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.StorageClient;
import org.csource.fastdfs.StorageServer;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;
import org.junit.Test;

public class FastDFSTest {
    @Test
    public void testUpLoad() throws Exception{
    	String conf_Path="........\\client.conf";//这里放你们的配置文件的全路径
        //1.初始化客户端配置文件,指定一个Tracker服务调度节点
    	ClientGlobal.init(conf_Path);
        //2.创建Tracker客户端对象
    	TrackerClient tClient = new TrackerClient();
    	//3.创建Tracker服务端对象 
    	TrackerServer tServer =tClient.getConnection();
    	//4.声明一个Storage server对象,null
    	StorageServer storageServer = null;
    	//5.通过Tracker server 和 Storage server 构造一个 storage clinet 对象
    	StorageClient storageClient = new StorageClient(tServer, storageServer);
    	//6.利用storageClient对象,调用上传文件的方法
    	String[] result = storageClient.upload_file("C:\\1.png", "png", null);
    	
        //7.打印result数组中的 内容
    	
    	for(String s:result){
    		System.out.println(s);
    	}
    }
}


(4)执行JUnit测试


Java--上传图片至FastDFS的storage server存储器_第5张图片


(5)排查原因


在Linux系统中,修改防火墙配置,在iptables中添加22122端口开放配置信息


-A INPUT -p tcp -m tcp --dport 22122 -j ACCEPT


Java--上传图片至FastDFS的storage server存储器_第6张图片


重启防火墙配置


/etc/init.d/iptables restart




防火墙配置重启后,本地Dos命令窗口下 telnet 192.168.153.134 22122  端口,成功


(6)再次执行,JUnit单元测试


Java--上传图片至FastDFS的storage server存储器_第7张图片


(7)干翻防火墙(实际开发中,这种访问不了端口的问题,运维人员会帮我们解决的)


service iptables stop   停掉服务




(8)最后的希望,再次,进行JUnit单元测试


Java--上传图片至FastDFS的storage server存储器_第8张图片



组合图片Url地址:http://192.168.153.134/group1/M00/00/00/wKiZhlnEr8eAb-JNAAJKZecvYXE849.png


Java--上传图片至FastDFS的storage server存储器_第9张图片


整个上传图片测试成功,上传图片成功后返回的String数组里包含了图片在storage server端生成的规则,拿到这个,我们可以进行本地数据库存储,当然,本地数据库里面我们只存文件的字符串地址就行!


Java--上传图片至FastDFS的storage server存储器_第10张图片


你可能感兴趣的:(Java,Web)