FastDFS
FastDFS java 上传下载
-
配置文件
dfs.properties## fastdfs-client fastdfs.connect_timeout_in_seconds=5 fastdfs.network_timeout_in_seconds=30 fastdfs.charset=UTF-8 fastdfs.http_anti_steal_token=true fastdfs.http_secret_key=FastDFS1234567890 fastdfs.http_tracker_http_port=80 fastdfs.tracker_servers=file.ljzsg.com:22122
http_secret_key 对应 /etc/fdfs/http.conf 的http.anti_steal.secret_key
-
POM
<dependency> <groupId>net.oschina.zcx7878</groupId> <artifactId>fastdfs-client-java</artifactId> <version>1.27.0.0</version> </dependency>
-
上传
@Test public void upload() { try { // 初始化全局配置。加载一个配置文件。 ClientGlobal.initByProperties("dfs.properties"); // 创建一个TrackerClient对象。 TrackerClient trackerClient = new TrackerClient(); // 创建一个TrackerServer对象。 TrackerServer trackerServer = trackerClient.getConnection(); // 声明一个StorageServer对象,null。 StorageServer storageServer = null; // 获得StorageClient对象。 StorageClient storageClient = new StorageClient(trackerServer, storageServer); // 直接调用StorageClient对象方法上传文件即可。 String[] strings; strings = storageClient.upload_file("D:\\test.jpg", "jpg", null); for (String string : strings) { System.out.println(string); //group1/ //M00/00/00/wKgCx1wHQ-aAYvtmAACxjYqFSkc019.jpg } } catch (Exception e) { e.printStackTrace(); } }
-
下载
@Test public void download(){ try { // 初始化全局配置。加载一个配置文件 ClientGlobal.initByProperties("dfs.properties"); // 创建一个TrackerClient对象 TrackerClient tracker = new TrackerClient(); // 创建一个TrackerServer对象。 TrackerServer trackerServer = tracker.getConnection(); // 声明一个StorageServer对象, StorageServer storageServer = null; // 获得StorageClient对象 StorageClient storageClient = new StorageClient(trackerServer, storageServer); byte[] b = storageClient.download_file("group1", "M00/00/00/wKgCx1wHQ-aAYvtmAACxjYqFSkc019.jpg"); System.out.println(b); // 将下载的文件流保存 IOUtils.write(b, new FileOutputStream("D:/"+UUID.randomUUID().toString()+".jpg")); } catch (Exception e) { e.printStackTrace(); } }
有志者,事竟成,破釜沈舟,百二秦关终属楚。苦心人,天不负,卧薪尝胆,三千越甲可吞吴。