这是交易,我正在出售一些文件,它们可以下载。
因此,只有付费购买文件的用户才能下载它们。出于多种原因,我想避免通过 PHP 脚本下载 - 文件很大(有些约为 5GB) - 如果下载迷恋,则必须重新开始。
有什么办法吗?任何策略都可以帮助我识别允许下载文件的用户,并让 apache 完成这项工作(提供下载的直接链接),而不是使用 PHP 脚本来流式传输文件。
有任何想法吗 ?
任何 URL 都可以共享,因此您必须保留文件已下载的指示,否则付费访问者可以发布 URL,任何人都可以下载它。
使用 PHP,您可以在整个文件传输后设置一个标志(大致表示下载成功),因此无法再次下载文件。
您也可以使用某种身份验证,但话又说回来,可以共享凭据。
一种相当简单的解决方案是使用虚函数。您将对用户进行身份验证,然后将请求交给 apache。那不是使用php来流式传输文件。
借助一些技巧,您可以创建指向真实文件的符号链接,并在文件下载后将其关闭。
用户购买文件:您创建一个符号链接并将唯一的 URL 发送给用户。然后,您可能会监视日志文件并在文件下载后禁用符号链接。或者,如果您无法访问日志文件,您可以将用户发送到仅在用户访问时创建符号链接的 PHP 文件,然后在一定时间后关闭符号链接(尽管您如何确定那个时间,我'不确定)。
不是一个完美的解决方案,只是抛出一个想法。