php - 您如何计算文件的 content_hash 以用于 Dropbox 的 API?
问题描述
我需要根据 Dropbox 上的副本验证本地文件副本的内容。我通过对 API v2get_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);
}
推荐阅读
- php - WordPress插件创建触发器不起作用
- android - 来自 Rest API 的 android 的 Http 调用
- ruby-on-rails - 如何从 Rails 中的另一个控制器获取帖子的 ID?
- java - 在构建 Java 9 模块的 Gradle 项目中,资源文件放在哪里?
- python - 将 Pip 包转移到 conda
- javascript - 当我们将数字格式化为美国格式时如何将两个正则表达式合二为一
- reactjs - ReactJS 如何设置 React 日历样式
- android - android:设置状态和导航栏颜色
- android - 我的应用程序不断崩溃(致命异常)
- sql-server - VS2017 - 15.8.0 - 无法将项目部署到服务器