前言
最近一直再用fastDFS, 上一篇讲了fastDFS如何配置, 那么这一篇我们来讲一讲如何使用Java来上传和下载文件。
依赖配置
首先将依赖配置好:
1 2 3 4 5
| <dependency> <groupId>net.oschina.zcx7878</groupId> <artifactId>fastdfs-client-java</artifactId> <version>1.27.0.0</version> </dependency>
|
还有配置文件:
1 2 3 4 5 6 7 8 9 10
| connect_timeout_in_seconds = 5 network_timeout_in_seconds = 30
charset = UTF-8
http_anti_steal_token = true http_secret_key = FastDFS1234567890 http_tracker_http_port = 19192
tracker_server = 127.0.0.1:22192
|
工具类
这里怎么写其实都好, 我就先列出我写的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| public class FastDfsUtil { private TrackerClient trackerClient = null; private TrackerServer trackerServer = null; private StorageServer storageServer = null; private StorageClient1 storageClient = null;
public FastDfsUtil(String conf) throws Exception { if (conf.contains("classpath:")) { String path = URLDecoder.decode(getClass().getProtectionDomain().getCodeSource().getLocation().toString(), "UTF-8"); path=path.substring(6); conf = conf.replace("classpath:",URLDecoder.decode(path,"UTF-8")); } ClientGlobal.init(conf); trackerClient = new TrackerClient(); trackerServer = trackerClient.getConnection(); storageServer = null; storageClient = new StorageClient1(trackerServer, storageServer); }
public String uploadFile(byte[] fileContent) throws Exception { return uploadFile(fileContent, null, null); }
public String uploadFile(byte[] fileContent, String extName, NameValuePair[] metas) { String result=null; try { result = storageClient.upload_file1(fileContent, extName, metas); } catch (IOException e) { e.printStackTrace(); } catch (MyException e) { e.printStackTrace(); } return result; }
|
测试:
1 2 3 4
| String confUrl = this.getClass().getClassLoader().getResource("./fastdfs-client.properties").getPath(); FastDfsUtil fastDFSClient = new FastDfsUtil(confUrl); String filePath= fastDFSClient.uploadFile("C:\\Users\\littleboy\\Pictures\\Snipaste_2019-03-09_11-32-27.jpg"); System.out.println("返回路径:"+filePath);
|
总结
大概就酱。