Часть программного обеспечения, над которым я работаю, выводит довольно много файлов, которые хранятся на сервере. Во время его выполнения у меня был поврежден один файл. Эти файлы имеют решающее значение для работы, поэтому этого не может произойти. Поэтому я пытаюсь придумать способ исправления ошибок в файлах, чтобы это больше никогда не повторилось.
Я читал о Риде-Соломоне, который кодирует k блоков данных плюс m блоков четности, а затем может восстановить до m недостающих блоков. Итак, я думаю взять поток данных, разбить его на эти блоки, а затем последовательно сохранить их на диске, сначала блоки данных, затем блоки четности. Повторяйте, пока весь файл не будет сохранен. k, m и размеры блоков, конечно, являются переменными, которые мне придется изучить и поиграть с ними.
Однако, насколько я понимаю, Рид-Соломон требует, чтобы вы знали, какие блоки повреждены. Откуда я мог это знать? Я думаю, что мне придется добавлять дополнительный, более простой код обнаружения ошибок в каждый из блоков, когда я их пишу, иначе я не могу знать, повреждены ли они. Типа CRC32 или типа того.
Я правильно понял, или есть лучший способ сделать это?