サーバーにアップロードされているファイルの再開可能なオンザフライハッシュ生成を実現したいと思います。ファイルが大きいので、HttpServletRequestのInputStreamから新しいバイトが到着するので、MessageDigestクラスのupdate(byte [])メソッドを使用しています(ここで説明するように、たとえば、MD5ハッシュを生成するにはどうすればよいですか? )。
すべてが順調に進んでいますが、再開可能なアップロードのサポートを追加したいので、今は面白くなってきています。アップロードが途中で終了した場合、不完全なファイルがディスクに保存されます。ただし、コントローラー(および基盤となるサービス)が終了するため、MessageDigestオブジェクトは失われます。その前に、MessageDigestオブジェクトをディスク(またはDB、関係ありません)にシリアル化して、オブジェクトを再度逆シリアル化したときに一時的な状態を記憶するようにできますか?したがって、アップロードを再開すると(正確なものから)以前に終了した場所なので、冗長なバイトはなく、一部のバイトが欠落していません)、逆シリアル化されたMessageDigestのupdate()を続行すると、最終的に、ファイルが一度にアップロードされた場合と同じ結果(ハッシュ)が得られますか?