Bagikan melalui


Konsistensi Transfer File

BITS menjamin bahwa versi file yang ditransfernya konsisten berdasarkan ukuran file dan stempel waktu, bukan konten (BITS tidak melindungi dari serangan man-in-the-middle). Untuk memverifikasi konten sendiri, Anda dapat menggunakan metode IBackgroundCopyFile3::GetTemporaryName untuk mendapatkan nama file yang berisi konten yang diunduh, memverifikasi konten menggunakan mekanisme Anda sendiri, lalu memanggil metode IBackgroundCopyFile3::SetValidationState untuk menunjukkan ke BITS jika konten file valid. Jika Anda mengatur status validasi ke FALSE dan kontennya berasal dari server asal, pekerjaan masuk ke status kesalahan. Jika konten berasal dari serekan, BITS mengunduh file dari server asal.

Untuk unduhan, jika ukuran file atau stempel waktu berubah saat BITS mentransfer file, BITS memulai ulang transfer file tersebut saja. Misalnya, jika pekerjaan pengunduhan berisi dua file dan file diperbarui di server saat BITS mentransfer file kedua, BITS memulai ulang transfer file kedua saja. File pertama, yang sudah berhasil ditransfer, tidak diperbarui untuk mencerminkan perubahan baru.

Perhatikan bahwa jika Anda memiliki file yang diunduh dari server, Anda harus membuat URL baru untuk setiap versi baru file. Jika Anda menggunakan URL yang sama untuk versi baru file, beberapa server proksi dapat melayani data kedaluarsa dari cache mereka karena tidak memverifikasi dengan server asli jika file kedaluarsa.

Untuk unggahan, jika ukuran file atau stempel waktu berubah selama transfer file, BITS menghasilkan kesalahan dan pekerjaan ditempatkan dalam status BG_JOB_STATE_ERROR.

BITS tidak menyinkronkan permintaan transfer ketika satu atau beberapa pengguna meminta agar file yang sama ditransfer ke lokasi yang sama. BITS mentransfer file untuk setiap permintaan secara terpisah.