다음을 통해 공유


파일 전송 일관성

BITS는 전송하는 파일의 버전이 콘텐츠가 아닌 파일 크기 및 타임스탬프를 기반으로 일관되도록 보장합니다(BITS는 중간자 공격으로부터 보호하지 않음). 콘텐츠를 직접 확인하려면 IBackgroundCopyFile3::GetTemporaryName 메서드를 사용하여 다운로드한 콘텐츠가 포함된 파일의 이름을 얻고, 사용자 고유의 메커니즘을 사용하여 콘텐츠를 확인한 다음, IBackgroundCopyFile3::SetValidationState 메서드를 호출하여 파일의 내용이 유효한지 여부를 BITS에 나타낼 수 있습니다. 유효성 검사 상태를 FALSE 로 설정하고 콘텐츠가 원본 서버에서 온 경우 작업이 오류 상태로 전환됩니다. 콘텐츠가 피어에서 온 경우 BITS는 원본 서버에서 파일을 다운로드합니다.

다운로드의 경우 BITS가 파일을 전송하는 동안 파일 크기 또는 타임스탬프를 변경하면 BITS는 해당 파일의 전송만 다시 시작합니다. 예를 들어 다운로드 작업에 두 개의 파일이 포함되어 있고 BITS가 두 번째 파일을 전송하는 동안 파일이 서버에서 업데이트되는 경우 BITS는 두 번째 파일의 전송만 다시 시작합니다. 이미 성공적으로 전송된 첫 번째 파일은 새 변경 내용을 반영하도록 업데이트되지 않습니다.

서버에서 다운로드되는 파일이 있는 경우 파일의 각 새 버전에 대한 새 URL을 만들어야 합니다. 새 버전의 파일에 동일한 URL을 사용하는 경우 일부 프록시 서버는 파일이 부실한 경우 원래 서버에서 확인하지 않기 때문에 캐시의 부실 데이터를 제공할 수 있습니다.

업로드의 경우 파일 전송 중에 파일 크기 또는 타임스탬프를 변경하면 BITS에서 오류가 생성되고 작업이 BG_JOB_STATE_ERROR 상태에 배치됩니다.

BITS는 하나 이상의 사용자가 동일한 파일을 동일한 위치로 전송하도록 요청할 때 전송 요청을 동기화하지 않습니다. BITS는 각 요청에 대한 파일을 개별적으로 전송합니다.