運行平台: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...
安裝編譯concatfs
yum install fuse fuse-develgit clone https://github.com/schlaile/concatfs.gitcd concatfs/srcgcc -Wall concatfs.c `pkg-config fuse --cflags --libs` -o concatfscp ./concatfs /bin
使用掛載的方式啟動一個目錄
原目錄:
/opt/www/website/
裡麵包含檔案
index.html test.html
建立一個待掛載的目錄
mkdir /opt/www/website_mnt
執行
concatfs /opt/www/website/ /opt/www/website_mnt
沒報錯就已經在後台運行
建立一個特殊的檔案名稱 包含-concat-
只要包含 -concat- 將會被concatfs特殊解析
vim /opt/www/website/1-concat-.txt
內容
index.htmltest.html
注意結尾列也需要有斷行符號符 LF,不然最後那個檔案不會載入
現在訪問 /opt/www/website_mnt/1-concat-.txt 便會返回這兩個檔案合并之後的資料
相當於這兩個檔案動態合并了,其實在物理上並沒有合并
注意是 website_mnt/1-concat-.txt 目錄
訪問原目錄的 website/1-concat-.txt 仍然是原檔案
PS: 並沒有測試寫入 /opt/www/website_mnt/1-concat-.txt 的情況