fastDFS的安裝與配置(虛擬機測試)

目錄
  • fastDFS安裝與配置
    • 導入虛擬機
    • fastDFS安裝
    • Tracker配置
    • Storage配置
  • 文件上傳下載測試
    • 搭建環境
    • 文件上傳
    • 文件查詢
    • 文件下載

一、fastDFS安裝與配置

1.1 導入虛擬機(有虛擬機鏡像的可以不看這一步)
  • 這裏使用的時Vmware虛擬機
  • 這裏使用的鏡像是Centos7,導入光驅等的操作請自行操作。
  • 安裝的jdk 1.8
  • 安裝pcre,openssl
1.2 fastDFS安裝
  • tracker和storage使用相同的安裝包,
  • fastDFS的下載地址在:下載地址
  • 這裏使用 FastDFS_v5.05.tar.gz
  • 安裝 FastDFS 需要先將官網下載的源碼進行編譯,編譯依賴 gcc 環境,如果沒有 gcc 環境,需要安裝 gcc:yum install gcc-c++
1.2.1 安裝 libevent
  • FastDFS 依賴 libevent 庫,需要安裝:
  • yum -y install libevent
1.2.2 安裝 libfastcommon
  • libfastcommon 是 FastDFS 官方提供的,libfastcommon 包含了 FastDFS 運行所需要的一些基礎庫。
1 將 libfastcommonV1.0.7.tar.gz 拷貝至/usr/local/2 cd /usr/local
3 tar -zxvf libfastcommonV1.0.7.tar.gz
4 cd libfastcommon-1.0.7
5 ./make.sh
6 ./make.sh install

注意:libfastcommon 安裝好後會自動將庫文件拷貝至/usr/lib64 下,由於 FastDFS 程序引用 usr/lib 目錄所以需要將/usr/lib64 下的庫文件拷貝至/usr/lib 下。

1.2.2 tracker 編譯安裝
  • 將 FastDFS_v5.05.tar.gz 拷貝至/usr/local/下
  • tar -zxvf FastDFS_v5.05.tar.gz
  • cd FastDFS
  • ./make.sh 編譯
  • ./make.sh install 安裝
  • 安裝成功將安裝目錄下的 conf 下的文件拷貝到/etc/fdfs/下。
1.3 Tracker配置
  • 安裝成功後進入/etc/fdfs 目錄:
  • 拷貝一份新的 tracker 配置文件:
    cp tracker.conf.sample tracker.conf
  • 修改 tracker.conf
    vi tracker.conf
  • base_path=/home/yuqing/fastdfs
    改爲:base_path=/home/fastdfs
  • 配置 http 端口:http.server_port=80
  • 啓動 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
1.4 Storage配置
  • 將 FastDFS_v5.05.tar.gz 拷貝至/usr/local/下
  • tar -zxvf FastDFS_v5.05.tar.gz
  • cd FastDFS
  • ./make.sh 編譯
  • ./make.sh install 安裝
  • 安裝成功將安裝目錄下的 conf 下的文件拷貝到/etc/fdfs/下。
  • /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
  • 安裝成功後進入/etc/fdfs 目錄
  • 拷貝一份新的 storage 配置文件:
    cp storage.conf.sample storage.conf
  • 修改 storage.conf vi storage.conf group_name=group1
    base_path=/home/yuqing/FastDFS 改爲:base_path=/home/ fastdfs store_path0=/home/yuqing/FastDFS
    改爲:store_path0=/home/fastdfs/fdfs_storage
  • #如果有多個掛載磁盤則定義多個 store_path,如下
    #store_path1=…#store_path2=…
    tracker_server=192.168.101.3:22122 #配置 tracker 服務器:IP
    = #如果有多個則配置多個 tracker
    tracker_server=192.168.101.4:22122
  • #配置 http 端口
    http.server_port=80
  • 啓動 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

二、文件上傳下載測試

2.1 搭建環境
  • 這裏用java的spring-boot做個簡單測測試
    pom.xml文件
<dependencies>
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
<!--        https://mvnrepository.com/artifact/net.oschina.zcx7878/fastdfs‐client‐java-->
 
 <dependency>
     <groupId>net.oschina.zcx7878</groupId>
     <artifactId>fastdfs-client-java</artifactId>
     <version>1.27.0.0</version>
 </dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>1.3.2</version>
</dependency>
</dependencies>

配置文件
在classpath:config下創建fastdfs-client.properties文件

fastdfs.connect_timeout_in_seconds = 5 #http連接超時時間 fastdfs.network_timeout_in_seconds = 30 #tracker與storage網絡通信超時時間 fastdfs.charset = UTF‐8 #字符編碼 fastdfs.tracker_servers = 192.168.28.120:22122 #tracker服務器地址,多個地址中間用英文逗號分隔
2.2 文件上傳
	@Test
    public void testUpload() {
    try {
        ClientGlobal.initByProperties("config/fastdfs‐client.properties");
        System.out.println("network_timeout=" + ClientGlobal.g_network_timeout + "ms");
        System.out.println("charset=" + ClientGlobal.g_charset);
        //創建客戶端 T
        TrackerClient tc = new TrackerClient();
        //連接tracker
        TrackerServer ts = tc.getConnection();
        if (ts == null) {
            System.out.println("getConnection return null");
            return;
        }
        //獲取一個storage server
        StorageServer ss = tc.getStoreStorage(ts);
        if (ss == null) { System.out.println("getStoreStorage return null"); }
        //創建一個storage存儲客戶端
        StorageClient1 sc1 = new StorageClient1(ts, ss);
        NameValuePair[] meta_list = null; //new NameValuePair[0];
        String item = "C:\\Users\\admin\\Desktop\\1.png";
          String fileid;
          fileid = sc1.upload_file1(item, "png", meta_list);
            System.out.println("Upload local file " + item + " ok, fileid=" + fileid);
    }catch (Exception ex) {
        ex.printStackTrace();
    }
2.3文件查詢
/查詢文件
    @Test
    public void testQueryFile() throws IOException, MyException {
        ClientGlobal.initByProperties("config/fastdfs‐client.properties");
        TrackerClient tracker = new TrackerClient();
        TrackerServer trackerServer = tracker.getConnection();
        StorageServer storageServer = null;
        StorageClient storageClient = new StorageClient(trackerServer, storageServer);
    }
2.4文件下載
@Test 
public void testDownloadFile() throws IOException, MyException { 
        ClientGlobal.initByProperties("config/fastdfs‐client.properties"); 
        TrackerClient tracker = new TrackerClient(); 
        TrackerServer trackerServer = tracker.getConnection(); 
        StorageServer storageServer = null; 
        StorageClient1 storageClient1 = new StorageClient1(trackerServer, storageServer); 
        byte[] result = storageClient1.download_file1("group1/M00/00/01/wKhlQFrKBSOAW5AWAALcAg10vf4862.png"); 
        File file = new File("d:/1.png"); 
        FileOutputStream fileOutputStream = new FileOutputStream(file); 
        fileOutputStream.write(result); fileOutputStream.close(); 
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章