您如何计算文件的 content_hash 以用于 Dropbox 的 API?
How do you calclulate a file's content_hash for use with Dropbox's API?
我需要根据 Dropbox 上的副本验证本地文件副本的内容。我通过对 API v2 的 get_metadata
方法的请求获取该信息。
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);
}
我需要根据 Dropbox 上的副本验证本地文件副本的内容。我通过对 API v2 的 get_metadata
方法的请求获取该信息。
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);
}