微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获取客户端成功下载 2 GB 文件的次数?

如何解决如何获取客户端成功下载 2 GB 文件的次数?

我需要向客户端(接收个人下载令牌)提供 2 GB 的文件,我目前使用这个:

if (is_valid_download_token($token)) {
    log_download_start();  // logs token,date,IP
    header("X-Sendfile: /files/2GB_file.zip");
    header("Content-type: application/octet-stream");
    header('Content-disposition: attachment; filename="2GB_file.zip"');
}

我希望我的自动化系统能够确保:

  • 他们成功下载了文件至少一次(我定期运行一个脚本来检查这个)
  • 对于给定的令牌,成功下载的次数不超过 2(在此之后,我将返回一条消息)

那么,如何获取客户端成功下载2GB文件次数

关于我迄今为止尝试过的内容的说明:

  • 简单地增加 log_download_start() 中的计数器不是一个好的解决方案,因为有人可能不得不重新启动 5 次下载(因为互联网连接不良),直到它最终工作。

  • 此外,从日志中,我知道人们使用“下载管理器”将 2 GB 下载分成 20 个 100 MB 的下载请求,这完全没问题。所以一开始只计算请求的数量是没有效率的。

  • 我使用 PHP + Apache + X-Sendfile 是出于 Fastest Way to Serve a File Using PHPDownloading files with download.php 中解释的具体原因。 TL;DR:我不希望 PHP 读取 2 GB 数据(这会减慢一切),而是让 Apache 直接处理请求。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。