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

来源:互联网 发布:mac美国官网海淘攻略 编辑:程序博客网 时间:2024/06/05 06:06

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

<project>     <modelVersion>4.0.0</modelVersion>     <groupId>fastdfs_client</groupId>     <artifactId>fastdfs_client</artifactId>     <version>1.25</version>   </project> 

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






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





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



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





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

tracker_server=192.168.153.134:22122

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





(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测试




(5)排查原因


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


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




重启防火墙配置


/etc/init.d/iptables restart




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


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




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


service iptables stop  停掉服务




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





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




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




阅读全文
0 0