Java利用fastdfs-client-java开发工具包操作FastDFS分布式文件系统
来源:互联网 发布:linux下备份文件命令 编辑:程序博客网 时间:2024/06/05 18:04
1.下载fastdfs-client-java开发工具包
https://github.com/happyfish100/fastdfs-client-java
2.把fastdfs-client-java开发工具包打包到本地的Maven仓库,在Windows窗口输入如下命令(注意:本机必须安装Maven,并配置Maven环境变量,并且盘符要切换到fastdfs-client-java解压的目录下)
mvn clean install
此时我们就可以在我们需要的项目中添加对它的依赖,就可以使用fastdfs-client-java此开发工具包。
FastDFS有两个角色:跟踪服务器和存储服务器。跟踪服务器负责文件访问的调度和负载均衡,存储文件服务器负责文件的存储、文件同步、提供文件访问接口,管理元数据(文件相关属性,键值对方式),例如:width = 1024,键为“width”,值为“1024”。
3.Java连接FastDFS分布式文件系统,遇到的那些坑......
(1)当出现此异常时:java.net.ConnectException: Connection refused: connect。请检查FastDFS分布式文件系统所需的tracker server服务、storage server服务是否启动,如果都启动了,还是出现此异常,那么请检查tracker.conf、storage.conf是否配置正确。
如果配置正确,还是出现异常,那么请检查Linux防火墙是否拦截了FastDFS相应的端口号,相应配置如下:
<1>tracker.conf配置文件修改如下:
如果bind_addr的值不填,则绑定所有主机。填,则填入你装FastDFS分布式文件系统的主机IP地址。
在这个配置文件中,我们也可以看到FastDFS分布式文件系统中的跟踪服务器的默认端口为22122。
<2>storage.conf配置文件修改如下:
当然上图,我们只需要改bind_addr的值即可,当然你也可以不改(bind_addr的值不填,则绑定所有主机),在这里我们也可以看到存储服务器的默认端口号为23000。在这里需要注意的是我们group_name的值,我们在用Java客户端上传文件时,如果不指定group_name的值,那么它就是默认值group1,如果指定了此值,但指定的值与默认值不一致,那么将出现如下异常:
org.csource.common.MyException: getStoreStorage fail, errno code: 2at org.csource.fastdfs.StorageClient.newWritableStorageConnection(StorageClient.java:1629)at org.csource.fastdfs.StorageClient.do_upload_file(StorageClient.java:639)at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:197)at xin.soar.example.FastDFSUtil.upload_file(FastDFSUtil.java:59)at xin.soar.example.TestFastDFSUtil.upload_file(TestFastDFSUtil.java:39)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)at org.junit.runners.ParentRunner.run(ParentRunner.java:363)at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
其他有关于FastDFS的配置信息请看此说明:http://bbs.chinaunix.net/thread-1941456-1-1.html
那么此时我们就去看看Linux防火墙是否对这两个的端口是否开放,输入如下命令:
vim /etc/sysconfig/iptables
大家可以去看你的配置文件是否开放了其端口,如果没开,那么请输入如下命令:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT保存退出,如果上述你都做了,请一定要记得重启Linux防火墙,输入如下命令:
/etc/init.d/iptables restart然后再分别重启追踪服务器、存储服务器,输入如下命令:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart最后再用我们写好的Java代码,来连接FastDFS,进行文件上传,下载,删除等操作。
当我们看见以上信息时,那么说明恭喜你,文件上传成功!
阅读全文
0 0
- Java利用fastdfs-client-java开发工具包操作FastDFS分布式文件系统
- fastdfs分布式文件系统之JAVA client工具类封装
- fastdfs分布式文件系统之JAVA client工具类封装
- 四、分布式文件系统fastDFS-Java Api
- fastdfs-java-client 使用指南
- fastdfs-java-client 使用指南
- fastdfs-client-java maven
- fastdfs-client-java操作fastdfs5.0.5
- fastdfs-client-java操作fastdfs5.0.4
- fastdfs-client-java操作fastdfs5.0.4
- CentOS_6.6上, FastDFS分布式文件系统搭建和Java测试
- 分布式文件系统FastDFS
- 分布式文件系统 FastDFS
- 分布式文件系统FastDFS
- FastDFS分布式文件系统
- 分布式文件系统 FastDFS
- fastDFS分布式文件系统
- 分布式文件系统FastDFS
- Spring源码深度解析(二)容器的基本用法
- matlab冒号的用法总结
- 没有任何需求的情况下,如何展开性能测试工作
- 信号槽
- Web应用中设置了异常统一处理页面,捕捉指定异常时的处理问题
- Java利用fastdfs-client-java开发工具包操作FastDFS分布式文件系统
- Android系统所有可申明权限
- ShaderToy指南1:颜色和坐标
- MySQL四种常用索引类型
- hibernate中把查询出来的集合封装为对象集合
- Java 8 lambda stream forEach parallel 等循环与Java 7 for each 循环耗时测试
- HTML/CSS基础笔记(day01)
- Spring源码深度解析(三)Spring的结构组成
- adb 从手机拷贝文件