国产精品chinese,色综合天天综合精品网国产在线,成午夜免费视频在线观看,清纯女学生被强行糟蹋小说

    <td id="ojr13"><tr id="ojr13"><label id="ojr13"></label></tr></td>
        • <source id="ojr13"></source>
            <td id="ojr13"><ins id="ojr13"><label id="ojr13"></label></ins></td>

            Article / 文章中心

            利用SpringBoot云服務器的FastDFS實現(xiàn)文件上傳

            發(fā)布時間:2021-12-09 點擊數(shù):1000

            .2 環(huán)境前置要求

            本地虛擬機/云服務器:CentOS7.x 版別

            將FastDFS 和 Nginx 相關的軟件壓縮包下載完結并上傳到云服務器中,下載鏈接如下:

            nginx-1.18.0.tar.gz

            libfastcommon-1.0.38.tar.gz

            fastdfs-5.11.tar.gz

            fastdfs-nginx-module-1.20.tar.gz

            下載完結后如圖:


            image.png

            image.png

            將下載的壓縮文件通過Xftp 6 上傳到云服務器指定途徑下,我指定的途徑是:/usr/local/src/software

            image.png

            1.3 裝置單節(jié)點的FastDFS

            由于我這兒僅僅用FastDFS 去做文件服務器,個人開發(fā)不需求用到集群的FastDFS,而且個人也沒有多臺服務器的環(huán)境!假如有需求,能夠找一篇關于FastDFS集群環(huán)境搭建的文章閱讀!


            1.3.1 裝置gcc 和nginx 依靠庫

            由于FastDFS 本身便是淘寶的大牛用C語言寫的,所以其依靠于對C進行編譯的環(huán)境 gcc,裝置指令如下:

            yum -y install gcc 

            除了gcc之外,還需求裝置nginx 相關的依靠庫,由于后續(xù)要裝置 nginx 

            yum install pcre pcre-devel yum install zlib zlib-devel yum install openssl openssl--devel yum install libevent 

            留意:假如你本機裝置的nginx壓縮包不是tar.gz而是zip格局的,這時候需求自己下載一下解壓zip格局文件的指令unzip,下載指令如下:

            yum install -y unzip zip 
            1.3.2 裝置libfastcommon 咱們進入上傳軟件壓縮包的途徑:cd /usr/local/src/software
            解壓: tar -zxvf libfastcommon-1.0.38  進入解壓完結后的目錄: cd libfastcommon-1.0.38/  履行編譯而且裝置: ./make.sh ./make.sh install 

            1.3.3 裝置fastdfs

            解壓: tar -zxvf fastdfs-5.11.tar.gz  進入解壓完結后的目錄: cd fastdfs-5.11/  履行編譯而且裝置: ./make.sh ./make.sh install 

            假如裝置成功,會看到/etc/init.d/下看到提供的腳本文件:


            image.png

            • fdfs_trackerd是tracker發(fā)動腳本
            • fdfs_storaged是storage發(fā)動腳本

            能夠在 /etc/fdfs/ 目錄下看到默許的裝備文件模板:

            ll /etc/fdfs/  成果如下: -rw-r--r-- 1 root root  1461 Dec  9 20:26 client.conf.sample -rw-r--r-- 1 root root  7927 Dec  9 20:26 storage.conf.sample -rw-r--r-- 1 root root  7389 Dec  9 20:26 tracker.conf.sample 

            tarcker.conf.sample 是tracker的裝備文件模板

            storage.conf.sample 是storage的裝備文件模板

            client.conf.sample 是客戶端的裝備文件模板

            1.3.4 裝備并發(fā)動tracker服務

            FastDFS 的 tracker 和 storage 在剛剛的裝置過程中,都已經(jīng)被裝置了,因此咱們裝置這兩種人物的辦法是相同的。不同的是,兩種需求不同的裝備文件。


            咱們要發(fā)動tracker,就修正剛剛看到的tarcker.conf,而且發(fā)動fdfs_trackerd腳本即可:


            1)首先將模板文件仿制:

            cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf 

            2)修正仿制后的裝備文件:

            vim /etc/fdfs/tracker.conf  # 修正的內容如下: base_path=/fastdfs_files/tracker                 # 自己指定的存儲日志和數(shù)據(jù)的根目錄 

            image.png

            由于自己指定的目錄默許是不存在的,所以修正過裝備文件后,咱們新建一下該目錄:

            mkdir -p /fastdfs_files/tracker 

            留意:假如運用的是本地虛擬機請封閉防火墻,云服務器記得開放安全組對應的端口!下面是我的云服務器開放的端口,FastDFS 默許需求23000 和 22122 兩個端口:

            image.png

            4)發(fā)動和中止:

            發(fā)動tracker服務器: /etc/init.d/fdfs_trackerd start


            中止tracker服務器: /etc/init.d/fdfs_trackerd stop


            不過裝置過程中,fdfs 已經(jīng)被設置為系統(tǒng)服務,咱們能夠選用熟悉的服務發(fā)動辦法:

            service fdfs_trackerd start         # 發(fā)動fdfs_trackerd服務,中止用stop 

            查看FastDFS Tracker Server是否發(fā)動成功:

            ps -ef | grep fdfs_trackerd 

            image.png

            假如是本地虛擬機,不想每次開機都重新發(fā)動該服務,能夠將其設置為敞開自發(fā)動:

            chkconfig fdfs_trackerd on 

            1.3.5 裝備并發(fā)動storage服務

            過程類似于1.3.4

            1)首先將模板文件仿制:

            cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf 

            2)修正仿制后的裝備文件:

            vim /etc/fdfs/storage.conf  # 修正的內容如下: base_path=/fastdfs_files/storage                # 數(shù)據(jù)和日志文件存儲根目錄  store_path0=/fastdfs_files/storage              # 第一個存儲目錄  tracker_server=本機ip:22122             # tracker服務器IP和端口 

            由于自己指定的目錄默許是不存在的,所以修正過裝備文件后,咱們新建一下該目錄:

            mkdir -p /fastdfs_files/storage 

            3)發(fā)動和中止:

            • 發(fā)動storage服務器:/etc/init.d/fdfs_storaged start
            • 中止storage服務器:/etc/init.d/fdfs_storaged stop

            引薦運用如下辦法發(fā)動:

            service fdfs_storaged start             # 發(fā)動fdfs_storaged服務,中止用stop 

            能夠運用ps -ef | grep fdfs查看進程:

            image.png

            假如是本地虛擬機,不想每次開機都重新發(fā)動該服務,能夠將其設置為敞開自發(fā)動:

            chkconfig fdfs_trackerd on 

            再次提示:本地虛擬機封閉防火墻,云服務器敞開安全組端口!

            2. 運用nginx拜訪FastDFS

            2.1 裝置fastdfs-nginx-module

            2.1.1 解壓

            tar -zxvf fastdfs-nginx-module-1.20.tar.gz 

            2.1.2 修正config文件

            1)進入解壓后的文件夾下的src目錄

            cd fastdfs-nginx-module-1.20/src/ 

            image.png

            2)編輯config

            vim config

            運用以下底行指令:

            :%s+/usr/local/+/usr/+g

            將所有的/usr/local替換為 /usr,這個才是正確的目錄:

            image.png

            2.1.3 裝備nginx與FastDFS關聯(lián)裝備文件

            仿制 fastdfs-nginx-module-1.20 源碼中的裝備文件到/etc/fdfs 目錄, 并修正:

            cp /usr/local/src/software/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs/  vim /etc/fdfs/mod_fastdfs.conf 

            修正以下裝備:

            connect_timeout=10                       # 客戶端拜訪文件連接超時時長(單位:秒)  tracker_server=本機ip:22122      # tracker服務IP和端口  url_have_group_name=true                 # 拜訪鏈接前綴加上組名  store_path0=/fastdfs_files/storage       # 文件存儲途徑 


            仿制 FastDFS 的部分裝備文件到/etc/fdfs 目錄:

            cd /usr/local/src/software/fastdfs-5.11/conf/  cp http.conf mime.types /etc/fdfs/ 

            2.2 裝置Nginx的插件

            由于文章 1.3.1 末節(jié)已經(jīng)裝置了 nginx 依靠庫,所以這兒不需求再裝置:

            # 假如前面沒裝置,這兒就需求裝置虛啊 nginx依靠庫: yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel 

            2.2.1 解壓裝置包

            tar -zxvf nginx-1.18.0.tar.gz 

            2.2.2 裝備nginx裝置包并指定fastdfs-nginx-model

            # 進入解壓后的nginx-1.18.0 目錄: cd nginx-1.18.0/  # 履行以下指令: ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/src/software/fastdfs-nginx-module-1.20/src/ 

            留意:在履行./configure裝備nginx 參數(shù)的時候,需求將 fastdfs-nginx-moudle 源碼作為模塊編譯進去。

            2.2.3 編譯并裝置

            make && make install 

            2.2.4 發(fā)動nginx

            裝備nginx整合fastdfs-module模塊,咱們需求修正nginx裝備文件,在/opt/nginx/config/nginx.conf 文件中:

            vim  /opt/nginx/conf/nginx.conf 


            將文件中,原來的server 80{ ...}部分代碼替換為如下代碼:

            server {  listen       80;  server_name  你的域名;  # 監(jiān)聽域名中帶有group的,交給FastDFS模塊處理  location ~/group([0-9])/ {  ngx_fastdfs_module;  }  location / {  root   html;  index  index.html index.htm;  }  error_page   500 502 503 504  /50x.html;  location = /50x.html {  root   html;  } } 

            發(fā)動指令:

            nginx           # 發(fā)動nginx  nginx -s stop    # 中止nginx  nginx -s reload  # 重新載入裝備文件 

            可通過ps -ef | grep nginx查看nginx是否已發(fā)動成功:

            image.png

            3. 運用SpringBoot 整合FastDFS

            3.1 相關依靠


             com.github.tobato fastdfs-client

            3.2 相關裝備參數(shù)

            # fastDFS 相關裝備 fdfs:  so-timeout: 1501 # 讀取超時時刻  connect-timeout: 601 # 連接超時時刻  thumb-image: # 縮略圖裝備  width: 60  height: 60  tracker-list: # tracker地址:你的虛擬機服務器地址+端口(默許是22122)  - 你的服務器ip:22122 

            3.3 相關裝備類

            /**  * @Auther: csp1999  * @Date: 2020/12/10/11:29  * @Description: fastDFS 客戶端裝備類  */ @Configuration @Import(FdfsClientConfig.class) // 解決jmx重復注冊bean的問題 @EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING) public class FastDfsClientConfig { } 

            3.4 測驗類中進行測驗

            /**  * @Auther: csp1999  * @Date: 2020/12/10/11:33  * @Description: 測驗FastDFS 文件上傳  */ @SpringBootTest @RunWith(SpringRunner.class) public class FastDFSTest {   // fastDFS 存儲客戶端  @Autowired  private FastFileStorageClient storageClient;   // 用于獲取 fastDFS 圖片縮略圖  @Autowired  private ThumbImageConfig thumbImageConfig;   @Test  public void testUpload() throws FileNotFoundException {  // 獲取本機要上傳的文件  File file = new File("M:\\code\\IDEA\\leyou\\image\\lf.jpg");   /**  * 上傳并保存圖片  *  * 參數(shù):  * 1-上傳的文件流  * 2-文件的巨細  * 3-文件的后綴  * 4-能夠不論他  */  StorePath storePath = this.storageClient.uploadFile(  new FileInputStream(file), file.length(), "jpg", null);   // 帶分組的途徑  System.out.println(storePath.getFullPath());   // 不帶分組的途徑  System.out.println(storePath.getPath());  }   @Test  public void testUploadAndCreateThumb() throws FileNotFoundException {  // 獲取本機要上傳的文件  File file = new File("M:\\code\\IDEA\\leyou\\image\\bz4.jpg");   /**  * 上傳并保存圖片而且生成縮略圖  *  * 參數(shù):  * 1-上傳的文件流  * 2-文件的巨細  * 3-文件的后綴  * 4-能夠不論他  */  StorePath storePath = this.storageClient.uploadImageAndCrtThumbImage(  new FileInputStream(file), file.length(), "png", null);   // 帶分組的途徑  System.out.println(storePath.getFullPath());   // 不帶分組的途徑  System.out.println(storePath.getPath());   // 獲取縮略圖途徑  String path = thumbImageConfig.getThumbImagePath(storePath.getPath());  System.out.println(path);  } } 

            先測驗testUpload()辦法,輸出成果:

            image.png

            然后咱們就能夠通過服務器ip地址/group1/M00/00/00/wKg4ZVsWl5eAdLNZAABAhya2V0c424.jpg,去拜訪圖片:


            image.png

            同理咱們測驗testUploadAndCreateThumb()帶縮略圖的辦法,輸出成果如下:

            group1/M00/00/00/rBHaFV_Rmq6AC7m3AAQvu4hOzN4945.png         # 帶分組的途徑 M00/00/00/rBHaFV_Rmq6AC7m3AAQvu4hOzN4945.png                # 不帶分組的途徑 M00/00/00/rBHaFV_Rmq6AC7m3AAQvu4hOzN4945_60x60.png          # 縮略圖途徑 

            咱們先看下不是縮略圖的作用:ip地址/group1/M00/00/00/rBHaFV_Rmq6AC7m3AAQvu4hOzN4945.png

            image.png

            再看下縮略圖的作用:ip地址/group1/M00/00/00/rBHaFV_Rmq6AC7m3AAQvu4hOzN4945_60x60.png

            image.png

            圖片巨細是咱們在裝備文件中裝備的寬高60px! 咱們能夠到服務器/fastdfs_files/storage/data/途徑下查看上傳的圖片:

            image.png

            SpringBoot整合FastDFS完結!