Как рассчитать файл content_hash для использования с API Dropbox? - PullRequest
0 голосов
/ 01 ноября 2018

Мне нужно проверить содержимое локальной копии файла по отношению к копии в Dropbox. Я получаю эту информацию через запрос к методу API v2 get_metadata.

1 Ответ

0 голосов
/ 01 ноября 2018
function dropbox_content_hash($file) {
    $fh = fopen($file, 'r');
    if (!$fh) {
        # warning already issued
        return;
    }
    $hashes = '';
    $zero_byte_exception_check = true;
    do {
        $chunk = fread($fh, 4194304);
        if ($zero_byte_exception_check) {
            if ($chunk === '') {
                return 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855';
            }
            $zero_byte_exception_check = false;
        }
        $hashes .= hash('sha256', $chunk, true);
    } while (!feof($fh));
    fclose($fh);
    return hash('sha256', $hashes);
}
...