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
网友评论