O ile mi wiadomo, archiwa WinRAR mogą zawierać ECC (kody korekcji błędów), więc jeśli archiwum jest nieco uszkodzone, wówczas można je naprawić samodzielnie.
Na przykład, może najpierw zakodować archives.tar
do archives.tar.ecc
, a następnie przesłać go do mojego serwera. Jeśli plik zostanie nieznacznie uszkodzony po pobraniu przez klienta, można go naprawić automatycznie bez ponownego pobierania pliku przez dekodowanie archives.tar.ecc
. Myślę, że to świetny pomysł, jeśli połączenie sieciowe jest niestabilne.
Zastanawiam się, czy w systemie Linux działa jakieś oprogramowanie typu open source.
Jakieś sugestie?
tar
sięga dalej - GNUtar
koduje rzadkie dziury w metadanych nagłówka, a po wyodrębnieniu przez dowolnypax
archiwizator zgodny z POSIX generuje pliki zawierające informacje potrzebne do odbudowania pliku lub przez GNUtar
do oryginalnego rzadkiego pliku. Wykorzystuje głównie zakodowane zmienne nagłówkowe, które można zdefiniować zgodnie z POSIX dlapax
narzędzia w /-o
.Odpowiedzi:
Miałem ten sam problem i stwierdziłem, że rozwiązania podane w drugiej odpowiedzi były nie do zaakceptowania, ponieważ program / standard par2 obejmuje tworzenie osobnych plików do odzyskiwania i weryfikacji. Myślę, że podobnie jak oryginalny pytający chcę jednego pliku z kodami korekcji błędów.
Znalazłem program rsbep, który kiedyś znajdował się w menedżerze pakietów, a następnie znalazłem potrzebny kod tutaj: https://www.thanassis.space/rsbep.html
Umożliwia to utworzenie pliku z kodami korekcji błędów Reeda-Solomona, a następnie odzyskanie oryginalnego pliku z prawdopodobnie uszkodzonej wersji ECC.
źródło
rsbep
przezroczystości, ale to tylko na skryptach, które działają na zasadzie plik po pliku.Interesuje Cię PAR2, który wykorzystuje korekcję błędów Reeda-Solomona. parchive to specyfikacja formatu pliku ECC, w Linuksie będziesz chciał PyPar lub par2tbb , a w systemie Windows używasz GUI o nazwie QuickPar .
źródło
Jeśli chcesz, aby plik ecc był oddzielny od archiwum, możesz użyć pyFileFixity, projektu Python typu open source, którego celem jest zapewnienie systemu ochrony PAR typu nowej generacji przed uszkodzeniem bitów.
Jeśli chcesz, aby ochrona ECC była uwzględniona bezpośrednio w archiwum, możesz użyć DAR opensource , rodzaj TAR nowej generacji, który pozwala wygenerować zarówno niestałe (tj. Umożliwia częściowe wyodrębnienie uszkodzonych archiwów), jak i ecc ( przy użyciu PAR2) i izolacji katalogu (tj. zapisz kopię zapasową drzewa katalogów i metadanych systemu plików) bezpośrednio w archiwach .dar.
źródło
Innym podobnym projektem z 2018 roku jest Redupe, który wydaje się zapewniać zarówno oddzielną, jak i osadzoną korekcję błędów pliku w dwóch osobnych narzędziach:
Przykład na stronie (zmieniony dla zwięzłości) wygląda podobnie do twojego przypadku użycia:
reundupe
może być następnie użyty do przywrócenia pliku i ewentualnej naprawy drobnych błędów.źródło