引言:
上一篇博客已經簡單介紹的fastdfs的原理與安裝,本節繼續討論fastdfs的實際操作部分。本身是搞java出身,下面我就主要介紹關於java操作進行演示
fastdfs的入門到精通(引言和單機安裝)
准備條件:
1.啟動tracker和storage服務
java操作
1.搭建環境,我使用idea進行演示,首先創建一個fastdfs的maven項目,刪除其中src文件夾,在此項目基礎上建立相關父子項目來進行演示。然后新建一個moudle,建成后如下:
2.從github下載相關源碼包: fastdfs-client-java
下載后如下:
3. copy 其中的org文件到第一步項目中的fastdfs_java的main/java下
4.copy配置文件到resources
5.修改配置文件,把fastdfs-client.properties.sample 修改為fastdfs-client.properties 來讓程序識別 ,然后把文件內容清空。寫上tracker服務器地址即可
6.寫測試接口
在准備寫測試接口,要在pom中追加junit的依賴:
在test包下創建TestFastdfs進行測試:
package huhy;
import org.csource.common.MyException;
import org.csource.common.NameValuePair;
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.StorageClient;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;
import org.junit.Test;
import java.io.IOException;
/**
* @Author: huhy
* @Date:2020/3/17 16:21
* 項目名稱:fastdfs
* @description: 測試
*/
public class TestFastdfs {
/**
* 測試文件上傳
* @throws IOException
* @throws MyException
*/
@Test
public void testFirstFastdfsCmd() throws IOException, MyException {
//初始化配置文件
ClientGlobal.init("fastdfs-client.properties");
//tracker 客戶端
TrackerClient trackerClient = new TrackerClient();
//獲取trackerServer
TrackerServer trackerServer = trackerClient.getTrackerServer();
//創建StorageClient 對象
StorageClient storageClient = new StorageClient(trackerServer);
//文件元數據信息組
NameValuePair[] nameValuePairs = {new NameValuePair("author","huhy")};
/**
* 參數1 本地路徑
* 參數2 后綴名
* 參數3 文件元數據屬性
*/
String[] txts = storageClient.upload_file("F:\\2020學習\\fastdfs\\測試上傳.txt", "txt", nameValuePairs);
for (String txt : txts) {
System.out.println(txt);
}
}
/**
* 測試下載文件
* @throws IOException
* @throws MyException
*/
@Test
public void testDownloadFile() throws IOException, MyException {
//初始化配置文件
ClientGlobal.init("fastdfs-client.properties");
//tracker 客戶端
TrackerClient trackerClient = new TrackerClient();
//獲取trackerServer
TrackerServer trackerServer = trackerClient.getTrackerServer();
//創建StorageClient 對象
StorageClient storageClient = new StorageClient(trackerServer);
//測試文件下載
storageClient.download_file("group1", "M00/00/00/wKjsgl5wkXuATLO3AAAAGXCvZ6w695.txt","f:/a.txt");
}
}
注意,上面測試只是簡單測試上傳和下載方法,關於java操作fastdfs的API還有很多,不一一測試,上面演示主要是讓大家對java操作fastdfs有一個上下連貫的思想。
在上面演示中,可能會遇到兩個典型的錯誤。
1.配置文件錯誤:
解決辦法:復制 tracker_server 替換配置文件 “ = ” 前配置即可:
2. 連接tracker服務器超時問題:
解決辦法: 這個是老問題,因為我們配置好服務器后忘了關閉防火牆造成的,關閉防火牆即可:
我使用的centos7 關閉防火牆命令為
firewall-cmd --state 查看防火牆狀態
systemctl stop firewalld.service 臨時關閉防火牆(重啟后失效)
systemctl disable firewalld.service 永久關閉防火牆
補充:
1.很多人會有疑問,為啥不直接引用fastdfs-cleint的maven包
因為github上沒有官方的客戶端請求包,現在發布到github上的包大多數都是各個公司根據自己公司情況封裝過的,所以不建議使用。鑒於這種情況,作者余慶也寫了一個,就是上面我下載的那個源碼包。
那為啥這個不能引用呢,因為作者在開發中編譯環境可能存在差異,在我們引用的時候可能會報這樣那樣的錯誤,最經典的是java編譯環境不匹配。所以官方建議我們下載源碼包,根據自己公司環境自己構建相對於的jar包進行使用,這也是上面演示引入源碼重新編譯的原因。
關於java操作fastdfs的幾個典型的api介紹,暫時介紹到這里,后續介紹springboot的相關整合,配置,操作。