質問: アップロード中にファイルにアクセスできないようにする 大きなファイルをftpサーバーにアップロードした場合、そのファイルは宛先ファイルシステムにすぐに表示され、転送が完了する前に他のユーザーからアクセスされる可能性がありますか?もしそうなら、転送が完了するまでファイルが読み取られないようにするいくつかの方法は何ですか?
回答: これは、特定のサーバー実装の動作に完全に依存し、 rfc959 では完全には定義されていません。一般に、アップロードが226を返すまでサーバーでファイルを使用できず、そのステータスは150です。ファイルがまだ完全にアップロードされていない場合、ステータスレスポンスは550にならず、ファイルは転送されませんクライアントに。これを行うために、stou verbは、eofバイトが到着したときにファイルのアップロードが完了したことを知っているため、その時点でファイル全体がアップロードされているため、226が返されます。 [〜#〜] recv [〜#〜] 動詞は、最初に要求されたファイルのステータスを返します。ファイルが許容可能なステータスの場合、150の応答が期待され、転送が開始されます。さらに、ほとんどのサーバーサービスはマルチスレッドアプリケーションとして実装されており、ファイルのスレッドセーフは通常、ファイルシステムとサーバーのosロックに依存していることに注意してください。ほとんどのプラットフォームでは、ファイルがアクティブに書き込まれているとき、ロックが解除されるまで、他のスレッドはそのファイルの読み取りも書き込みもできません。