我正在开发的一个软件会输出大量存储在服务器上的文件。在其运行期间,我有一个文件损坏了我。这些文件对操作至关重要,因此不会发生这种情况。因此,我试图想出一种向文件添加错误纠正的方法,以防止这种情况再次发生。
我读过 Reed-Solomon,它对 k 个数据块加上 m 个奇偶校验块进行编码,然后最多可以重建 m 个丢失的块。所以我在想的是获取数据流,将其拆分为这些块,然后将它们按顺序存储在磁盘上,首先是数据块,然后是奇偶校验块。重复直到整个文件被存储。k、m 和块大小当然是我必须研究和使用的变量。
但是,据我了解,Reed-Solomon 要求您知道哪些块已损坏。我怎么可能知道?我的想法是,我必须在编写每个块时为每个块添加一些额外的、更简单的错误检测代码,否则我不知道它们是否已损坏。像 CRC32 什么的。
我是否正确理解了这一点,还是有更好的方法来实现这一点?