本文共 2935 字,大约阅读时间需要 9 分钟。
服务器安装完毕后,测试通过Java调用fastdfs。
fastdfs的安装可以参考我的博文:fastdfs 没有在中心仓库中提供获取的依赖坐标。只能自己通过源码方式编译,打好jar 包,安装到本地仓库。
官方仓库地址: 可以在项目的根目录下使用git clone 命令,将代码下载随后可以用idea直接把这个源码作为模块导入工程
导入工程后,别的不用改,只把pom.xml中的版本改成1.27。最后执行install
安装完成后就可以在自己的项目任意一个模块直接使用这个坐标了。org.csource fastdfs-client-java 1.27
在你要使用fastdfs的项目模块中的resource中添加tracker.conf 配置文件
tracker.conf:tracker_server=xxx.xxx.xxx.xxx:22122
# 连接超时时间,针对socket套接字函数connect,默认为30秒 connect_timeout=30000 # 网络通讯超时时间,默认是60秒 network_timeout=60000
@Testpublic void textFileUpload() throws IOException, MyException { String file = this.getClass().getResource("/tracker.conf").getFile(); ClientGlobal.init(file); TrackerClient trackerClient=new TrackerClient(); TrackerServer trackerServer=trackerClient.getConnection(); StorageClient storageClient=new StorageClient(trackerServer,null); String orginalFilename="e://victor.jpg"; String[] upload_file = storageClient.upload_file(orginalFilename, "jpg", null); for (int i = 0; i < upload_file.length; i++) { String s = upload_file[i]; System.out.println("s = " + s); }}
打印结果:
这个打印结果实际上就是我们访问的路径,加上服务器地址我们可以拼接成一个字符串:http://192.168.1.136/group1/M00/00/00/wKgBiF3u5IKAKPMPAAAl_GXv6Z4569_big.jpg 可以直接放到浏览器去访问修改业务模块中文件上传FileUploadController的方法
@RestController@CrossOriginpublic class FileUploadController { @Value("${fileServer.url}") private String fileUrl; // http://localhost:8082/fileUpload @RequestMapping("fileUpload") public String fileUpload(MultipartFile file) throws IOException,MyException{ String imgUrl = fileUrl; if(file!=null) { //上传哪张图片回显哪张图片 //表示读取配置文件中的tracker.conf String configFile = this.getClass().getResource("/tracker.conf").getFile(); //初始化 ClientGlobal.init(configFile); TrackerClient trackerClient = new TrackerClient(); TrackerServer trackerServer = trackerClient.getConnection(); //存储数据 StorageClient storageClient = new StorageClient(trackerServer, null); //String orginalFilename = "f://Temp//iu-006.jpg"; String orginalFilename = file.getOriginalFilename(); //获取文件后缀名 String extName = StringUtils.substringAfterLast(orginalFilename, "."); //保存数据 String[] upload_file = storageClient.upload_file(file.getBytes(), extName, null); for (int i = 0; i < upload_file.length; i++) { String path = upload_file[i]; //System.out.println("s = " + s); imgUrl+="/"+path; // path = group1 // path = M00/00/00/wKgBiF3vcZKAbGnXAAttGURDaFU215.jpg } } return imgUrl; }}
利用@Value 标签可以引用application.properties中的值
注意:application.properties:fastdfs的路径是有http://转载地址:http://epshn.baihongyu.com/