Sfoglia il codice sorgente

fastdfs不同服务上传到不同目录

gaodm 6 anni fa
parent
commit
a011722b85

+ 45 - 2
icssman-service/src/main/java/com/diagbot/client/fastdfs/FastDFSClient.java

@@ -105,8 +105,11 @@ public class FastDFSClient {
     }
 
     private static StorageClient getTrackerClient() throws IOException {
-        TrackerServer trackerServer = getTrackerServer();
-        StorageClient storageClient = new StorageClient(trackerServer, null);
+        TrackerClient trackerClient = new TrackerClient();
+        TrackerServer trackerServer = trackerClient.getConnection();
+        StorageServer storageServer = getStorageServer(getStorageServerIp(trackerClient, trackerServer));
+        StorageClient storageClient
+                = new StorageClient(trackerServer, storageServer);
         return storageClient;
     }
 
@@ -115,4 +118,44 @@ public class FastDFSClient {
         TrackerServer trackerServer = trackerClient.getConnection();
         return trackerServer;
     }
+
+    /**
+     * 获得可用的storage IP
+     *
+     * @param trackerClient
+     * @param trackerServer
+     * @return 返回storage IP
+     */
+    private static String getStorageServerIp(TrackerClient trackerClient, TrackerServer trackerServer) {
+        String storageIp = null;
+        if (trackerClient != null && trackerServer != null) {
+            try {
+                StorageServer storageServer = trackerClient.getStoreStorage(trackerServer, "group1");
+                storageIp = storageServer.getSocket().getInetAddress().getHostAddress();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        logger.info("获取组中可用的storage IP:" + storageIp);
+        return storageIp;
+    }
+
+    /**
+     * 得到Storage服务
+     *
+     * @param storageIp
+     * @return 返回Storage服务
+     */
+    private static StorageServer getStorageServer(String storageIp) {
+        StorageServer storageServer = null;
+        if (storageIp != null && !("").equals(storageIp)) {
+            try {
+                storageServer = new StorageServer(storageIp, Integer.parseInt("23000"), Integer.parseInt("0"));
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        logger.info("storage server生成");
+        return storageServer;
+    }
 }

+ 45 - 2
knowledgeman-service/src/main/java/com/diagbot/client/fastdfs/FastDFSClient.java

@@ -105,8 +105,11 @@ public class FastDFSClient {
     }
 
     private static StorageClient getTrackerClient() throws IOException {
-        TrackerServer trackerServer = getTrackerServer();
-        StorageClient storageClient = new StorageClient(trackerServer, null);
+        TrackerClient trackerClient = new TrackerClient();
+        TrackerServer trackerServer = trackerClient.getConnection();
+        StorageServer storageServer = getStorageServer(getStorageServerIp(trackerClient, trackerServer));
+        StorageClient storageClient
+                = new StorageClient(trackerServer, storageServer);
         return storageClient;
     }
 
@@ -115,4 +118,44 @@ public class FastDFSClient {
         TrackerServer trackerServer = trackerClient.getConnection();
         return trackerServer;
     }
+
+    /**
+     * 获得可用的storage IP
+     *
+     * @param trackerClient
+     * @param trackerServer
+     * @return 返回storage IP
+     */
+    private static String getStorageServerIp(TrackerClient trackerClient, TrackerServer trackerServer) {
+        String storageIp = null;
+        if (trackerClient != null && trackerServer != null) {
+            try {
+                StorageServer storageServer = trackerClient.getStoreStorage(trackerServer, "group1");
+                storageIp = storageServer.getSocket().getInetAddress().getHostAddress();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        logger.info("获取组中可用的storage IP:" + storageIp);
+        return storageIp;
+    }
+
+    /**
+     * 得到Storage服务
+     *
+     * @param storageIp
+     * @return 返回Storage服务
+     */
+    private static StorageServer getStorageServer(String storageIp) {
+        StorageServer storageServer = null;
+        if (storageIp != null && !("").equals(storageIp)) {
+            try {
+                storageServer = new StorageServer(storageIp, Integer.parseInt("23000"), Integer.parseInt("0"));
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        logger.info("storage server生成");
+        return storageServer;
+    }
 }

+ 46 - 4
prec-service/src/main/java/com/diagbot/client/fastdfs/FastDFSClient.java

@@ -26,10 +26,9 @@ public class FastDFSClient {
         logger.info("File Name: " + file.getName() + "File Length:" + file.getContent().length);
 
         // 设置元信息
-        NameValuePair[] meta_list = new NameValuePair[3];
+        NameValuePair[] meta_list = new NameValuePair[2];
         meta_list[0] = new NameValuePair("name", file.getName());
         meta_list[1] = new NameValuePair("ext", file.getExt());
-        meta_list[2] = new NameValuePair("author", file.getAuthor());
 
         long startTime = System.currentTimeMillis();
         String[] uploadResults = null;
@@ -106,8 +105,11 @@ public class FastDFSClient {
     }
 
     private static StorageClient getTrackerClient() throws IOException {
-        TrackerServer trackerServer = getTrackerServer();
-        StorageClient storageClient = new StorageClient(trackerServer, null);
+        TrackerClient trackerClient = new TrackerClient();
+        TrackerServer trackerServer = trackerClient.getConnection();
+        StorageServer storageServer = getStorageServer(getStorageServerIp(trackerClient, trackerServer));
+        StorageClient storageClient
+                = new StorageClient(trackerServer, storageServer);
         return storageClient;
     }
 
@@ -116,4 +118,44 @@ public class FastDFSClient {
         TrackerServer trackerServer = trackerClient.getConnection();
         return trackerServer;
     }
+
+    /**
+     * 获得可用的storage IP
+     *
+     * @param trackerClient
+     * @param trackerServer
+     * @return 返回storage IP
+     */
+    private static String getStorageServerIp(TrackerClient trackerClient, TrackerServer trackerServer) {
+        String storageIp = null;
+        if (trackerClient != null && trackerServer != null) {
+            try {
+                StorageServer storageServer = trackerClient.getStoreStorage(trackerServer, "group1");
+                storageIp = storageServer.getSocket().getInetAddress().getHostAddress();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        logger.info("获取组中可用的storage IP:" + storageIp);
+        return storageIp;
+    }
+
+    /**
+     * 得到Storage服务
+     *
+     * @param storageIp
+     * @return 返回Storage服务
+     */
+    private static StorageServer getStorageServer(String storageIp) {
+        StorageServer storageServer = null;
+        if (storageIp != null && !("").equals(storageIp)) {
+            try {
+                storageServer = new StorageServer(storageIp, Integer.parseInt("23000"), Integer.parseInt("1"));
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        logger.info("storage server生成");
+        return storageServer;
+    }
 }