ファイルを暗号化し、結果を tarfile に入れるタスクを行う小さな暗号化モジュールを Python で作成しました。暗号化する元のファイルは非常に大きくなる可能性がありますが、それは問題ではありません。なぜなら、私のプログラムは一度に小さなデータ ブロックを操作するだけでよく、その場で暗号化して保存できるからです。
最初にすべてのデータを一時ファイルに書き込み、結果を tarfile に挿入するという 2 つのパスでそれを回避する方法を探しています。
基本的に私は次のことを行います (generator_encryptor は、ソースファイルから読み取ったデータのチャンクを生成する単純なジェネレーターです)。:
t = tarfile.open("target.tar", "w")
tmp = file('content', 'wb')
for chunk in generator_encryptor("sourcefile"):
tmp.write(chunks)
tmp.close()
t.add(content)
t.close()
ファイルとして一時ファイルを使用しなければならないのは少し面倒です.tarファイルにブロックを直接書き込むのは簡単ですが、すべてのチャンクを単一の文字列に収集し、 t.addfile('content', StringIO( bigcipheredstring) は、古い bigcipheredstring に十分なメモリがあることを保証できないため、除外されているようです。
それを行う方法のヒントはありますか?