php-为其他服务器上的文件生成有时间限制的下载链接
我把我的文件放在我的VPS上,用户可以直接下载所有文件。但我想隐藏我的实际文件路径,并制作有时间限制的下载链接。我在谷歌上搜索了一下,找到了一些解决方案,但大多数都是针对同一台服务器上的文件,其中一些在VPS端有一些编码,但我无法在我的VPS上编写任何php代码,因为它不支持php。php-为其他服务器上的文件生成有时间限制的下载链接,php,download,Php,Download,我把我的文件放在我的VPS上,用户可以直接下载所有文件。但我想隐藏我的实际文件路径,并制作有时间限制的下载链接。我在谷歌上搜索了一下,找到了一些解决方案,但大多数都是针对同一台服务器上的文件,其中一些在VPS端有一些编码,但我无法在我的VPS上编写任何php代码,因为它不支持php。 此外,我尝试了一些脚本,工作正常,但生成的链接无法恢复,并且直到下载完成后才显示文件大小。如何解决这些问题?您可以使用mod\u auth\u令牌(http://code.google.com/p/mod-auth
此外,我尝试了一些脚本,工作正常,但生成的链接无法恢复,并且直到下载完成后才显示文件大小。如何解决这些问题?您可以使用mod\u auth\u令牌(http://code.google.com/p/mod-auth-token/)apache模块,如果您作为web前端运行apache。 以下是如何处理令牌生成过程的PHP端:
<?php
// Settings to generate the URI
$secret = "secret string"; // Same as AuthTokenSecret
$protectedPath = "/downloads/"; // Same as AuthTokenPrefix
$ipLimitation = false; // Same as AuthTokenLimitByIp
$hexTime = dechex(time()); // Time in Hexadecimal
//$hexTime = dechex(time()+120); // Link available after 2 minutes
$fileName = "/file_to_protect.txt"; // The file to access
// Let's generate the token depending if we set AuthTokenLimitByIp
if ($ipLimitation) {
$token = md5($secret . $fileName . $hexTime . $_SERVER['REMOTE_ADDR']);
}
else {
$token = md5($secret . $fileName. $hexTime);
}
// We build the url
$url = $protectedPath . $token. "/" . $hexTime . $fileName;
echo $url;
?>
如果您无法更改实际下载链接,则在从服务器上删除之前,这些链接将一直可用。
当然,您可以创建一个脚本,根据系统时间对下载URL进行加密,但一旦用户在时间内调用它们,他就会从脚本中获得解密的URL。如果您有VPS,您应该拥有对它的root访问权限吗?如果是这样,通过安装php5
,使其支持PHP?如果这是通过PHP完成的,则需要使用数据库,以包含所有路径、文件名、下载计数和剩余时间。