不知道你在說什麼......但任何文件都可以在任何時候被分割。
爲什麼我這麼說...希望你使用類似Linux或類似的東西。
在Linux上,創建真正存儲在某些文件串聯中的塊設備很容易(不會太多)。
我的意思是:
- ,只要你想,每一個不同的尺寸的,沒必要OOD,甚至大小爲512個字節倍數等,不論大小,你一分爲許多塊文件你想要的,數學表達splitted_file_size =(desired_size mod 1)。
- 您定義串接以正確的順序
- 您定義的符號鏈接,這樣的設備
這樣,你可以有一個大文件中的所有文件塊設備(超過16GiB,比4GiB更多)存儲在一個FAT32分區上(每個文件的4GiB-1字節數限制)......並且可以實時和透明地訪問它......只考慮讀取。
的讀/寫......還有一招(即複雜的一部分),它的工作原理:
- 分割文件(此時的N * 512個字節的塊)
- 定義設備驅動程序的參數化(所以它知道如何通過創建多個文件分配更多的塊)
在Linux上我已經上做所有的工作在過去的一些工具(命令行)使用,他們讓你創建一個虛擬容器可以隨時調整大小,這將使用確切大小的文件(包括最後一個)並將其公開爲常規塊設備(您可以在其中執行dd if ... = of ...來填充它)以及與其關聯的虛擬文件。
這樣,你有:
- 相同大小
- 的一些不那麼大的文件,他們將舉行
- 他們在創建/刪除,因爲需要流的真實數據裏(放大/縮小或截斷)
- 他們面臨的一些問題
- Accesing文件等常規文件將被所看到的串聯
也許,讓您在其他的形式給出了主意,你所遇到的問題:
- 而是調整壓縮系統,只是把一個層(多一點點複雜,一個簡單的循環裝置)的那些在飛行和透明的分裂/加入
這樣的工具存在,我不記得名字,對不起!但我記得只有一個(dvd_double_layer。*是在FAT32上):
# cd /mnt/FAT32
# ls -lh dvd_double_layer.*
total #
-r--r--r-- 1 root root 3.5G 2017-04-20 13:10 dvd_double_layer.000
-r--r--r-- 1 root root 3.5G 2017-04-20 13:11 dvd_double_layer.001
-r--r--r-- 1 root root 0.2G 2017-04-20 13:12 dvd_double_layer.002
# affuse dvd_double_layer.000 /mnt/transparent_concatenated_on_the_fly
# cd /mnt/transparent_concatenated_on_the_fly
# ln -s dvd_double_layer.000.raw dvd_double_layer.iso
# ls -lh dvd_double_layer.*
total #
-r--r--r-- 1 root root 7.2G 2017-04-20 13:13 dvd_double_layer.000.raw
-r--r--r-- 1 root root 7.2G 2017-04-20 13:14 dvd_double_layer.iso
希望這個想法可以幫助你。
容器格式是否可以應用在使用非可分割壓縮格式壓縮的文件之上? – Marco99
術語'容器'有點混亂,它們是'文件格式',所以如果你想把現有的文件轉換成另一種格式,就必須有某種形式的轉換。你不能只是用某種東西來包裝文件。 –
對不起,我感到困惑。通過提及「容器文件格式」,我的意思是隻有像Avro這樣的hadoop文件格式。 – Marco99