OneDrive와 동일한 방식으로 XOrHash를 계산하므로 OD4B 백엔드와 동기화해야하는 변경 사항을 감지 할 수 있습니다. OneDrive XOrHash를 C#으로 계산하는 방법
은 내가 XOrHash 알고리즘에 대한 현재의 구현은 여기 https://docs.microsoft.com/en-us/onedrive/developer/code-snippets/quickxorhash발견 그러나 내가 OD4B이 우리에게 제공 해시에 맞게 우리의 코드에서 동일한 해시를 계산하는 방법을 제안하는 거기에 아무것도 할 수있는 사용합니다.
위의 링크에서 제공된 XOrHash 알고리즘을 사용하여 일반적인 길이가 20 바이트 인 해시에 대한 바이트 배열을 제공합니다. 우리는 일치하지 해시는 base64로 문자열이 우리 방법에 대한 https://docs.microsoft.com/en-us/onedrive/developer/rest-api/resources/hashes
모든 예제 코드 또는 힌트 것을 사용하기 위해 제안하는 다음 페이지 이상이 다른에있는 모든 문서를 찾을 수 없습니다하는 분명히
public static byte[] ComputeHash(string filePath)
{
using (var quickXor = XOrHash.Create())
{
using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
return quickXor.ComputeHash(stream);
}
}
}
public static string ConvertHexToString(this byte[] bytes)
{
return Convert.ToBase64String(bytes);
}
returns "4FPisLqvTiuaxUVVz6Zk+RxMClE=" OD4B tells us the hash is "LmpqMT5KKX4ATcd372ZTyVr3gIk="
해시를 계산해야하고 문자열을 반환하면 많은 도움이됩니다. 예를 들어 파일에
OD4B의 JSON
{"@odata.context":"omitted","@odata.type":"#oneDrive.item","@odata.id":"omitted","@odata.etag":"\"{D997D9C3-7976-4873-99F0-F4A5A1572B2A},2\"","@odata.editLink":"omitted","createdDateTime":"2017-12-04T17:07:40Z","id":"omitted","lastModifiedDateTime":"2017-12-04T17:07:40Z","name":"pptx001.pptx","file":{"hashes":{"quickXorHash":"LmpqMT5KKX4ATcd372ZTyVr3gIk="},"mimeType":"application/vnd.openxmlformats-officedocument.presentationml.presentation"},"size":29765}
(지금은 기대와 실제 한 해시하지만, 파일 없음) – Evk
위의 해시를 계산하는 데 사용한 예제 파일에 대한 링크를 추가했습니다. –