次の方法で共有


ファイル転送の整合性

BITS は、転送するファイルのバージョンが、コンテンツではなくファイル サイズとタイム スタンプに基づいて一貫していることを保証します (BITS は中間者攻撃から保護しません)。 コンテンツを自分で確認するには、IBackgroundCopyFile3::GetTemporaryName メソッドを使用して、ダウンロードしたコンテンツを含むファイルの名前を取得し、独自のメカニズムを使用してコンテンツを確認してから、IBackgroundCopyFile3::SetValidationState メソッドを呼び出して、ファイルの内容が有効かどうかを BITS に示すことができます。 検証状態を FALSE 設定し、コンテンツが配信元サーバーからの場合、ジョブはエラー状態になります。 コンテンツがピアからの場合、BITS は配信元サーバーからファイルをダウンロードします。

ダウンロードの場合、BITS がファイルの転送中にファイル サイズまたはタイム スタンプが変更された場合、BITS はそのファイルの転送のみを再開します。 たとえば、ダウンロード ジョブに 2 つのファイルが含まれており、BITS が 2 番目のファイルを転送している間にサーバー上でファイルが更新された場合、BITS は 2 番目のファイルの転送のみを再開します。 既に正常に転送された最初のファイルは、新しい変更を反映するように更新されません。

サーバーからダウンロードするファイルを所有している場合は、新しいバージョンのファイルごとに新しい URL を作成する必要があることに注意してください。 新しいバージョンのファイルに同じ URL を使用する場合、一部のプロキシ サーバーは、ファイルが古い場合は元のサーバーで検証されないため、キャッシュから古いデータを提供する可能性があります。

アップロードの場合、ファイル転送中にファイル サイズまたはタイム スタンプが変更されると、BITS によってエラーが生成され、ジョブがBG_JOB_STATE_ERROR状態になります。

BITS は、1 人以上のユーザーが同じファイルを同じ場所に転送することを要求した場合、転送要求を同期しません。 BITS は、要求ごとにファイルを個別に転送します。