java 代码实现Fastdfs 上传出现找不到配置文件路径

问题:

接手别人开发好的项目,fastdfs一直报错,

一开始我使用的是fastdfs-clinet-1.0.0-M.jar

java 代码实现Fastdfs 上传出现找不到配置文件路径_第1张图片

配置文件:

java 代码实现Fastdfs 上传出现找不到配置文件路径_第2张图片

工具类:

java 代码实现Fastdfs 上传出现找不到配置文件路径_第3张图片

 

一开始使用第一种方法初始化ClientGlobal.init函数, 一直报获取不到系统文件

 

然后我就是试着用第二个方法获取fdfs_client.conf,但是在下面的

TrackerClient tracker = new TrackerClient();  这步tracker是null

导致下一步TrackerServer trackerServer = tracker.getConnection();  tracker.getConnection()报错

java 代码实现Fastdfs 上传出现找不到配置文件路径_第4张图片

 

这个问题应该还是初始化ClientGlobal.init函数时有问题,

获取fdfs_client.conf 路径方法试了n中,直接写死,都还出现第二种报错

排查了好久没排查出来,然后我自己又新建一个项目,一样的jar,一样的配置文件,工具类写的都是一模一样,新建的项目是可以的上传成功的,很苦恼。

解决:

最后我没办法,我就抱着试试的心态换下新的jar,fastdfs-client-java-1.27-SNAPSHOT.jar

java 代码实现Fastdfs 上传出现找不到配置文件路径_第5张图片

初始化ClientGlobal.init函数使用第二种方法,最后上传成功了

但是使用第一种方法还是不行的。

 

fastdfs使用:

1.在pom.xml中配置jar 推荐使用 fastdfs-client-java-1.27-SNAPSHOT.jar

   
            org.csource
            fastdfs-client-java
            1.27-SNAPSHOT
    

2.在src/main/resources中新建fdfs_client.conf文件,内容如下

connect_timeout = 2
network_timeout = 30
charset = ISO8859-1
http.tracker_http_port = 8080  # tracker Http端口
http.anti_steal_token = no
http.secret_key = FastDFS1234567890


tracker_server = 172.16.**.**:22122   


#kb
section_size = 1 
try_upload_times = 3
try_interval_time= 5    


#s more than storage conf connect_time
ingore_diff_time=10
 

3.测试  

import java.io.IOException;

import org.csource.common.MyException;
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.springframework.core.io.ClassPathResource;

public class FsdfTest {

    public static void main(String[] args) throws Exception {
        // 1、加载配置文件,配置文件中的内容就是 tracker 服务的地址。
        try {

            ClassPathResource cpr = new ClassPathResource("fdfs_client.conf");
            ClientGlobal.init(cpr.getClassLoader().getResource("fdfs_client.conf").getPath());
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        }
        // 2、创建一个 TrackerClient 对象。直接 new 一个。
        TrackerClient trackerClient = new TrackerClient();
        // 3、使用 TrackerClient 对象创建连接,获得一个 TrackerServer 对象。
        TrackerServer trackerServer = null;
        try {
            trackerServer = trackerClient.getConnection();
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 4、创建一个 StorageServer 的引用,值为 null
        StorageServer storageServer = null;
        // 5、创建一个 StorageClient 对象,需要两个参数 TrackerServer 对象、StorageServer 的引用
        StorageClient storageClient = new StorageClient(trackerServer, storageServer);
        // 6、使用 StorageClient 对象上传图片。
        // 扩展名不带“.”
        String[] strings = new String[0];
        try {
            strings = storageClient.upload_file("C:/Users/79354/Desktop/test.docx", "docx", null);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        }
        // 7、返回数组。包含组名和图片的路径。
        for (String string : strings) {
            System.out.println(string);
        }

    }

}

 

 

你可能感兴趣的:(fastdfs)