2017-03-17 52 views
-2

我用命名爲 'concatfs' 保險絲插件如何用替換字節動態輸出文件內容?

它可以將虛擬合併一些文件與特定的文件名一樣xxx-concat-.mkv, 這個文件的內容是TEXT

1.mkv 
2.mkv 
3.mkv 

系統讀取xxx-concat-.mkv,it 輸出合併文件1.mkv 2.mkv ...。但實際上文件並未合併,這是一個虛擬輸出。

所以,我的問題是:

  • 靜態文件,1.zip> 300 MB。
  • 它有這麼多份(發佈給很多人),並且這些副本中的差異僅僅是4字節offset: 0xa 0xb 0xc 0xd。 4個字節是人的ID
  • 所以我想讓名爲「1-replaced-123.zip就像concatfs文件,內容大多是這樣的:

1.zip

(所有二進制)

是0xA 4取代-4字節二進制內容

0x1111 10取代-10bytes二進制內容

  • 系統讀取1-replaced-123.zip,fuse將輸出替換的內容。
  • 它可以節省很多磁盤空間。
  • 而且我知道PHP/JSP可以讀取和回顯替換,但php會使用高CPU /內存來回應大文件流。

你有什麼建議嗎?

非常感謝,對不起我的英語。

+0

14次,2向下票,爲什麼反對票?我不明白。內容有什麼問題? –

回答

0

使用合併熔絲到虛擬合併/替換文件(C++ 11)

https://github.com/fly-studio/merged-fuse

的1.txt

12345678 

2。TXT

abcdefghi 

將名爲1-merged-.txt文件,

-merged-是在文件名中

內容的特殊詞彙是JSON格式

[ 
    { 
     "path": "1.txt" 
    }, 
    { 
     "path": "2.txt", 
     "replaces": [ 
      { 
       "offset": 2, 
       "length": 2, 
       "content": "MjE=" 
      } 
     ] 
    } 
] 

cat 1-merged-.txt,輸出:

12345678ab12efghi 

你可以看到文件被合併(虛擬),內容被替換:

cd更換,以12