永続ストレージに移動する前に/ tmpにファイルをアップロードすると、どのような利点がありますか?

永続ストレージに移動する前に/ tmpにファイルをアップロードすると、どのような利点がありますか?

ファイルアップロードを処理する機能を構築する際のプログラミングの一般的な傾向は、最初にファイルを一時ディレクトリ/フォルダ(たとえば、Linuxの/ tmp)にアップロードするようです。ファイルが完成したら、一時ディレクトリから移動し、指定されたディレクトリに保存します。一部のプログラミング/スクリプト言語は、デフォルトで進行中のアップロードを/ tmpに配置し、他の言語はそうではありませんが、一般的な方法は、アップロードが完了するまで/ tmpをプレースホルダディレクトリに明示的に設定することです。この時点で、アップロードは別のディレクトリに移動されます。

長期保存のためにファイルを別のパーティション/ディレクトリに移動する前に、一時的な「保持」ディレクトリを使用してコンテンツをアップロードすると、どのような利点がありますか?

私は、大容量データ(TB)を永続的に保存するために、NFSを介して(内部)ネットワークストレージを仮想マシンにマウントする環境で作業しています。技術が進化するにつれて、私たちはより速く、より大量のデータを得ることができます。数年前はファイルの単純なHTTPアップロード(比較的小さいファイルサイズ、メガバイト?)でしたが、その後はフラッシュアップロードに切り替えました。一部のブラウザでは、ギガバイトのファイル/フォルダ構造までアップロードをドラッグアンドドロップできます。ユーザーが実際に一度に十分なファイルをアップロードしたい場合は、/ tmpに予約されているパーティションを簡単に超えることができるポイントに達しました。 NFSを介したマウントのネットワーク待ち時間に加えて、/ tmpをファイルサーバーに直接送信するよりも拡張した場合、どのような利点がありますか?技術を通じて、わずか10年前だけでも想像できなかった膨大な量のデータにアクセスできるようになり、このような伝統的な(今は悪い)慣行が役に立たなくなっていますか?

ベストアンサー1

  1. 指定されたリポジトリディレクトリがネットワークリポジトリである場合、パフォーマンスのためのものですか?
    • はい、そうかもしれません。一般的にそうではありませんが。実際のアップロードパフォーマンスがコードの主なパフォーマンス問題になることはほとんどありません。
  2. Linuxは、開発者/管理者が他の場所で説明する必要がないように、/ tmpディレクトリを定期的にスキャンして古いファイルを削除しますか?
    • はい、通常はい。これには、アップロードマネージャプロセスがクラッシュし、そうでなければクリーンアップされないいくつかのファイルが残る状況も含まれます。
  3. ただこれのせいでしょうか?
    • はい。 :-)
  4. 最終的に保存されるディレクトリにファイルを簡単に作成する機会がある場合(例:node.jsのfsモジュールを使用)、そうする必要がありますか?それともこれはタブーですか?
    • 一時スクラッチディレクトリを使用し、それをターゲットディレクトリと同じファイルシステムに配置する理由があります。多くのアプリケーションは、このディレクトリを最終的な宛先ディレクトリと同じファイルツリーに配置するため、最終的な「移動」操作はほぼ瞬時に行われます(おそらくアトミックかもしれません)。したがって、/var/spool/myapp/tmpとのような内容をよく見ます/var/spool/myapp/data。ただし、アプリケーションは通常クリーンアップcron操作を追加します.../tmp

おすすめ記事