私が取り組んでいる s3fs-fuse のフォークがあります。私の仕事は、ファイルを RC4 で透過的に暗号化することです。FdEntity::Read および Write 関数 (fdcache.cpp にあります) に暗号化を追加しましたが、jpeg ファイル (17kb) をコピーしようとすると失敗します (ファイルはコピーされますが、画像は破損しています)。 cmp では、4096 バイト以降のファイルが異なります。ただし、198kb のテキスト ファイルはエラーなしでコピーされます。
私が知っていることは次のとおりです。4kbはブロックのサイズです。
ただし、s3fs は 20MB になるまで「マルチパート モード」になりません。それでも、マルチパートを無効にしました-o nomultipart
(私も使用してい-o direct_io
ます)。
したがって、おそらくマルチパートアップロードが原因ではありません。
4kb の後に jpeg ファイルでのみ何がトリガーされているのか、何か考えはありますか? バイナリとテキストのファイルに関連している可能性はありますか?