首頁 > 後端開發 > php教程 > linux平台上,有無軟體可以製作虛擬文件指向多個文件,避免重複佔用空間?

linux平台上,有無軟體可以製作虛擬文件指向多個文件,避免重複佔用空間?

WBOY
發布: 2023-03-03 08:12:02
原創
1094 人瀏覽過

運行平台:CentOS

需求:類似

/opt/virtual.file 指向:/opt/1.file /opt/2.file /opt/3.file

首先,我知道合併的命令,但是這樣會新建一個文件,並佔用空間

我希望的是存取 /opt/virtual.file,相當於系統動態把這三個檔案合併成一個當成一個來存取

這個需求並不是使用nginx_http_concat中合併js/css的請求

因為上傳文件的時候為了確保穩定性,按照5M/塊的情況下分隔上傳,雖然也可以使用程序合併這些塊,但是有沒軟體可以讓系統做虛擬文件,指向到這些分塊,這樣就可以不用合併了

回覆內容:

運行平台:CentOS

需求:類似

/opt/virtual.file 指向:/opt/1.file /opt/2.file /opt/3.file

首先,我知道合併的命令,但是這樣會新建一個文件,並佔用空間

我希望的是存取 /opt/virtual.file,相當於系統動態把這三個檔案合併成一個當成一個來存取

這個需求並不是使用nginx_http_concat中合併js/css的請求

因為上傳文件的時候為了確保穩定性,按照5M/塊的情況下分隔上傳,雖然也可以使用程序合併這些塊,但是有沒軟體可以讓系統做虛擬文件,指向到這些分塊,這樣就可以不用合併了

這個必須使用fuse來實現,以及大神寫的:https://github.com/schlaile/c...

  1. 安裝編譯concatfs

    <code>yum install fuse fuse-devel
    git clone https://github.com/schlaile/concatfs.git
    cd concatfs/src
    gcc -Wall concatfs.c `pkg-config fuse --cflags --libs` -o concatfs
    cp ./concatfs /bin</code>
    登入後複製
  2. 使用掛載的方式啟動一個目錄
    原始目錄:
    /opt/www/website/
    裡麵包含檔案
    index.html test.html /opt/www/website_mnt
    執行
    concatfs /opt/www/website/ /opt/www/website_mnt
    沒報錯就已經在後台運作

    建立一個特殊的檔案名稱 包含

    -concat-
  3. 只要包含 -concat- 將會被concatfs特殊解析

    <code>vim /opt/www/website/1-concat-.txt</code>
    登入後複製
    內容

    <code>index.html
    test.html</code>
    登入後複製
    注意結尾列也需要有回車符 LF,不然最後那個檔案不會載入

    現在訪問
    /opt/www/website_mnt/1-concat-.txt
  4. 便會返回這兩個文件合併之後的數據
  5. 相當於這兩個文件動態合併了,其實在物理上並沒有合併

    注意是website_mnt/1-concat-.txt 目錄
    訪問原目錄的
    website/1-concat-.txt 仍然是原始檔案
    PS: 並沒有測試寫入

    /opt/www/website_mnt/1-concat-.txt
  6. 的情況
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板