Apakah mungkin menambahkan kode koreksi kesalahan (BCH, RS, dll.) Ke satu file?


12

Sejauh yang saya tahu, arsip WinRAR mungkin mengandung ECC (kode koreksi kesalahan), jadi jika arsipnya sedikit rusak, maka dapat diperbaiki dengan sendirinya.

Sebagai contoh, saya bisa encode pertama archives.taruntuk archives.tar.ecc, dan kemudian meng-upload ke server saya. Jika file sedikit rusak setelah diunduh oleh klien, maka itu dapat diperbaiki secara otomatis tanpa mengunduh lagi file tersebut dengan mendekode archives.tar.ecc. Saya pikir itu akan menjadi ide bagus jika koneksi jaringan tidak stabil.

Saya bertanya-tanya apakah ada (open-source) perangkat lunak yang berjalan di Linux yang dapat memenuhi kebutuhan saya.

Ada saran?


pada tingkat tertentu, ini sudah terjadi - masing-masing bidang chksum header file adalah jumlah byte konstituen header itu - untuk memasukkan bidang ukuran. Banyak yang tarmelangkah lebih jauh - GNU tarmenyandikan lubang file jarang dalam metadata header dan setelah ekstraksi oleh paxpengarsipan yang kompatibel POSIX menghasilkan file yang berisi informasi yang diperlukan untuk membangun kembali file, atau oleh GNU tarke file jarang asli. Ia menggunakan variabel header yang dikodekan utamanya yang dapat ditentukanpax sebagaimana ditentukan oleh POSIX untuk utilitas w / -o.
mikeserv

Jawaban:


6

Saya memiliki masalah yang sama dan menemukan bahwa solusi yang disediakan dalam jawaban lain tidak dapat diterima karena program / standar par2 melibatkan pembuatan file terpisah untuk melakukan pemulihan dan verifikasi. Saya, seperti penanya asli saya pikir, ingin satu file dengan kode koreksi kesalahan.

Saya menemukan program rsbep yang dulunya berada di manajer paket dan kemudian menemukan kode yang diperlukan di sini: https://www.thanassis.space/rsbep.html

Ini memungkinkan seseorang untuk membuat file dengan kode koreksi kesalahan Reed-Solomon dan kemudian mengambil file asli dari, mungkin rusak, versi ECC.


rsbep luar biasa! Tapi ini sedikit berbeda: ini adalah keseluruhan OS beku, jadi Anda dapat menambahkan file di dalamnya tetapi Anda tidak dapat mengubah apa yang ada di dalamnya, dan itu sedikit lebih rumit untuk bergerak. Tapi ini pendekatan yang sangat menarik, menggunakan FUSE, dan opensource.
Gaborous

1
@ rumit, itu tidak benar. Ada implementasi FUSE fs menggunakan secara rsbeptransparan, tapi itu hanya di atas skrip yang bekerja berdasarkan file-per-file.
nyov

6

Anda tertarik dengan PAR2, yang menggunakan koreksi kesalahan Reed-Solomon. parchive adalah spesifikasi format file ECC, untuk Linux Anda akan menginginkan PyPar atau par2tbb , dan pada Windows Anda menggunakan GUI yang disebut QuickPar .


1
Tautan untuk PyPar dan par2tbb terlihat rusak bagi saya. Saya menemukan par2tbb di sini
Drist

2
Saya pikir PyPar sama sekali tidak terkait dengan koreksi kesalahan.
mbarkhau

2

Jika Anda ingin memiliki file ecc terpisah dari arsip, Anda dapat menggunakan pyFileFixity, sebuah proyek Python opensource yang bertujuan untuk menyediakan sistem perlindungan seperti PAR PAR generasi berikutnya terhadap korupsi bit.

Jika Anda ingin perlindungan ecc dimasukkan langsung ke dalam arsip, Anda dapat menggunakan opensource DAR , sejenis TAR generasi berikutnya, yang memungkinkan untuk menghasilkan kedua non-solid (yaitu, memungkinkan ekstraksi sebagian arsip yang rusak) dan ecc ( menggunakan PAR2) dan isolasi katalog (yaitu, menyimpan cadangan pohon direktori dan meta-data filesystem) secara langsung di arsip .dar.


0

Proyek 2018 serupa lainnya adalah Redupe yang tampaknya menyediakan koreksi kesalahan file terpisah dan tertanam dalam dua alat terpisah:

Alat pertama, redupe, dimodelkan setelah alat kompresi seperti gzip atau bzip2, tetapi menambahkan redundansi alih-alih menghilangkannya.

Contoh di halaman web (diubah untuk singkatnya) terlihat mirip dengan kasus penggunaan Anda:

$ redupe home-backup.tar.gz
$ ls -l
-rw------- 1 rescrv 5625162218 home-backup.tar.gz
-rw-r--r-- 1 rescrv 6433996800 home-backup.tar.gz.rd

reundupe kemudian dapat digunakan untuk memulihkan file dan mungkin memperbaiki kesalahan kecil.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.