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

<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端生成的规则,拿到这个,我们可以进行本地数据库存储,当然,本地数据库里面我们只存文件的字符串地址就行!




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值