PostFile

PostFile プログラムは、Upload Manager によって送信されたファイルのチャンクを受け取り、それをファイルの独自のコピーに追加します。Upload Manager では、送信されるバイトの範囲と、ファイル名として使用される、ファイルの sha1 を指定します。このコンポーネントに関連する構成設定について詳しくは、BigFix 構成設定の「PostFile」を参照してください。

これらのパラメーターは、以下の例のように URL に追加されます。

postfile.exe?sha1=51ee4cf2196c4cb73abc6c6698944cd321593007&range=1000,1999,20000 

ここで、sha1 値はファイルを識別します。この場合の範囲は、20,000 バイトを 1,000 バイトずつのチャンクに分けたときの 2 つ目のチャンクを指定しています。

PostFile は、ファイルのチャンクを受け取ると、まずそれが正しいセグメントであることを確認します。そうである場合は、送信されたデータをそのファイルのローカル・コピーに追加します。そして、このファイルのサイズに加えて、現在のチャンク・サイズ、およびスロットリングの BPS 設定を返します。

PostFile は、このプログラムにデータを提供する複数の BigFix クライアントを同時に処理する必要があります。その負荷の平衡を取るために、スロットリング比率を調整します。効果的なスロットリング比率は、PostFile の制限比率を、同時にアップロード中のファイル数で除算して判別されます。

例えば、PostFile のスロットリング設定が 100 KBPS であり、50 のクライアントが同時にファイルをアップロードしている場合、各クライアントに返されるスロットリング値は 2 KBPS に調整されます。カスタムのスロットリング値を個別の BigFix リレーに設定することで、ネットワーク内のボトルネックを効率的に処理できます。

PostFile は、部分的にアップロードされたファイルを、そのファイル名の前に下線を付けて Upload Manager のバッファー・ディレクトリーに保管します (Upload Manager は、下線が先頭に付くファイルをアップロードしません)。PostFile は、そのファイルの最後のチャンクを受け取ると、ファイルの sha1 を計算して、それが URL の sha1 パラメーターと一致しているかどうかを確認します。一致している場合は、先行する下線を削除します。

これで、Upload Manager は、ファイルを階層の上位にある次のリレー (あるいは、他のサーバーが指定されている場合はそのサーバー) にアップロードできます。

PostFile は、Upload Manager が稼働中かどうかを判別します。稼働中でなければ、PostFile はすでにそのルート・サーバー宛先に到達したと想定します。その場合、アップロードされたファイルの名前を変更し、アーカイブからファイルを解凍して、Upload Manager のバッファー・ディレクトリーのサブフォルダーにファイルを保管します。

プログラムは、コンピューター ID のモジュラスを使用して、サブフォルダー・パスを計算します。こうすると、ファイル・ディレクトリーへのアクセスを拡散して、単一のディレクトリーにアクセスが集中することを防ぐ効果があります。

例えば、コンピューター ID1076028615 からファイル「log」へのパスは、パス 「BufferDir/sha1/15/1076028615/log」に変換されます。ここで、15 は ID のモジュロ 100 の余り (下位 2 桁) です。

アップロードされたファイルが有効な BigFix アーカイブで、正常に解凍された場合、元のアップロード・ファイルは削除されます。