https://github.com/happyfish100
从fastdfs作者的github地址下载fastdfs-client-java
这里建议下载1.27版本的,1.28版没有TrackerClient.getConnection,不知道1.28是怎么运行测试的
解压下载的压缩包,cmd到解压后的文件夹使用下面的某种构建方式获取jar
使用ant构建产生build文件夹,下面有一个jar
或者maven构建产生target文件夹,下面一个jar
使用ant从源码构建
ant clean package
使用maven从源码安装
mvn clean install
使用maven从jar文件安装(cmd进入到jar所在的文件夹把jar放到maven本地仓库)
mvn install:install-file -DgroupId=org.csource -DartifactId=fastdfs-client-java -Dversion=${version} -Dpackaging=jar -Dfile=fastdfs-client-java-${version}.jar
下面是对照上面的模板根据自己的版本和文件路径进行相应修改
mvn install:install-file -DgroupId=org.csource -DartifactId=fastdfs-client-java -Dversion=1.27 -Dpackaging=jar -Dfile=F:\mydir\fastdfs-client-java-1.27\target\fastdfs-client-java-1.27-SNAPSHOT.jar
在您的maven项目pom.xml中添加依赖
<dependency>
<groupId>org.csource</groupId>
<artifactId>fastdfs-client-java</artifactId>
<version>1.27-SNAPSHOT</version>
</dependency>
把两个配置文件放到项目的里面
解压的文件夹里面有fdfs_client.conf
注1:tracker_server指向您自己IP地址和端口,1-n个
注2:除了tracker_server,其它配置项都是可选的
fastdfs-client.properties
注1:properties 配置文件中属性名跟 conf 配置文件不尽相同,并且统一加前缀"fastdfs.",便于整合到用户项目配置文件
注2:fastdfs.tracker_servers 配置项不能重复属性名,多个 tracker_server 用逗号","隔开
注3:除了fastdfs.tracker_servers,其它配置项都是可选的
检查加载配置结果:
System.out.println("ClientGlobal.configInfo(): " + ClientGlobal.configInfo());
下面是测试代码
//导入配置文件
ClientGlobal.init("conf/fdfs_client.conf");
ClientGlobal.initByProperties("conf/fastdfs-client.properties");
//3、创建一个TrackerClient对象
TrackerClient trackerClient = new TrackerClient();
//4、创建一个TrackerServer对象。
TrackerServer trackerServer = trackerClient.getConnection();
//5、声明一个StorageServer对象,null。
StorageServer storageServer = null;
//6、获得StorageClient对象。
StorageClient storageClient = new StorageClient(trackerServer, storageServer);
//7、直接调用StorageClient对象方法上传文件即可。
String[] result = storageClient.upload_file("F:\\test\\a.png", "png", null);
//注意你的fastdfs产生的地址是否有端口号,有的话这里也需要添加
StringBuilder sb = new StringBuilder("http://192.168.112.130/");
sb.append(result[0]).append("/").append(result[1]);
System.out.println("图片访问地址: "+sb.toString());
//System.out.println("ClientGlobal.configInfo(): " + ClientGlobal.configInfo());