FastDFS中的知识

fastdfs-client-java的引入

抽取文件上传的工具类,(一个客户端追踪器,一个服务器追踪器,一个storage来连接客户端和服务器。给文件的名称和拓展名就能让客户端将文件上传到服务器,)

实现过程:初始化一个客户端追踪器,一个服务器追踪器,一个storage来连接客户端和服务器。通过加载fastfds.properties中服务器ip地址和端口号,从而通过storage来建立客户端和服务器的连接。将其上传。

public class FastDFSUtils(){

      private static TrackerClient= null;

      private static TrackerServer trackerServer = null;

      private static StorageClient storageClient = null;

private static init( String conf){

        if(conf.contains("classpath:")){

               conf = conf.replace("classpath:",FastDFSUtils.getResource("/").getPath);

//conf 是要加载的属性文件的地址。

                ClientGlobal.init(conf); } //加载配置文件

       trackerClient = new TrackerClient();

       trackerServer = trackerClient.getConnection();

       storageClient = new StorageClient1(trackerServer,null);

        }

}

//方法一:上传需要的是文件的路径全名称和文件的拓展名。方法二:上传需要的是文件file.getByte和文件的拓展名(客户端上传不需要再截取成一段一段),上传不同的文件的绝对路径是不相同的,就用

public static void upload(String fileName,String extName){

        return storageClient.upload_file1(fileName, extName, null);

}

//方法的重载

public static void upload(byte[ ] bs, String extName){

        return storageClient.upload_file1(bs, extName, null);

}

}

我们将文件上传到服务器,需要建立与服务器的连接,就是需要知道这台服务器的ip地址和端口号,在fastdfs-client-java中用ClientGlobal来加载属性文件,建立与服务器的连接,所以conf(属性文件的绝对路径全名称)=classpath(变量)+“/properties/fastdfs.properties”.因此,实际上是属性文件所在的绝对路径地址就是classpath+“/properties/fastdfs.properties”.  而真正    FastDFSUtils.getResource("/").getPath获得的是真正部署到tomcat上的路径,即是controller的下的target的绝对路径如:D:\javaEE\MyMaven\zhanghui.background\zhanghui-background-controller\target\classes (真正部署到tomcat上的路径)    +\properties.fastdfs.properties

你可能感兴趣的:(FastDFS中的知识)