アプリケーションは作業ファイルをどこに保存する必要がありますか?

アプリケーションは作業ファイルをどこに保存する必要がありますか?

私はスキャンした文書を処理するGUIアプリケーションを設計しています。保存/エクスポートする前にスキャンを操作できるため、処理中にスキャンした各ページのデータを一時的に保存する必要があります。

データ量がかなり大きく(通常は圧縮しても100MBを超える)、メモリに保存するのは非現実的です。多数のページをスキャンすることも作業量が多いため、システムを再起動した後でもアプリケーションを再度開くことができ、以前にスキャンしたデータを使用できるようにスキャン結果をディスクの「作業領域」に保存する必要があります。引き続き取引してください。

これは重要ですが、一時的なデータをどこに保存するのかわかりません。

  • /tmp/アプリを終了して再開した後もデータを保持する必要があり、再起動した後でもデータを保持する必要があるため、これはお勧めできません。
  • $HOME/.config/appname/保存された設定データではないため、正確ではありません。
  • $HOME/.local/share/間違った理由XDG仕様これは、保存されたアイコンなどの項目を上書きして/usr/share/「グローバル」スキャンに入れないことを意味します/usr/share/
  • $HOME/.cache近いがキャッシュされたデータではなく、100ページをスキャンして削除し、すべてを再スキャンする必要がある場合、ユーザーは非常に迷惑になります。
  • $HOME/.local/lib/appnameどの仕様にも表示されませんが、.localユーザーローカル(使用lib/var/lib/)を意味する場合は問題ありません。コンピュータのローカルを意味する場合、ユーザーは高速スキャナを使用してコンピュータにログインし、このアプリケーションでスキャンしてからログアウトし、通常のPCにログインしてアプリケーションを開くことができる必要があるため、適切ではありません。何をスキャンしているかを確認してください。つまり、データはログアウト時にネットワーク全体に保持され、~$HOME/.cacheシステム間で共有する必要がないため、$HOME/.localそうでない可能性があります。わかりません。

それでは、この種のデータを保存するのに最も適した場所の提案がありますか?

編集:明確にするために、これはユーザー固有のデータであり、アプリは通常のユーザーとして実行されるため、入力するのが正確ではない可能性があり/var/ます。これは、書き込みアクセスがないことを除いて、アプリを実行している複数のユーザーを処理する必要があるためです。一般ユーザー以外。

ベストアンサー1

私は他の場所からデータをインポートし、2〜7個のデータファイルを処理してCSVファイル、PDFレポート、および(選択した場合)他の多くのレポート形式を生成するGUIアプリケーション(wxPythonを使用)を持っています。ソースデータファイル(保存されるまで)とレポートを$ HOME / Documentsのディレクトリ構造に保存します。これはうまくいきますが、ディレクトリ名を作成するときは注意を払い、qwerty、fred1、abc123などの名前を指定しないようにユーザーに強調する必要があります。

おすすめ記事