我将文件放在我的VPS上,用户可以直接下载所有文件。但我想隐藏我的实际文件路径并限制下载时间。我用谷歌搜索并找到了一些解决方案,但大多数都是在同一台服务器上的文件,其中一些在VPS端有一些编码,但我不能在我的VPS上写任何PHP代码,因为它不支持php。 我也尝试了一些运行良好的脚本,但生成的链接不可恢复,直到下载完成后才显示文件大小。我该如何解决这些问题?
答案 0 :(得分:0)
如果您将apache作为Web前端运行,则可以使用mod_auth_token(http://code.google.com/p/mod-auth-token/)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;
?>
答案 1 :(得分:0)
如果您无法更改实际的下载链接,它们将一直可供下载,直到从服务器中删除它们为止。 当然,您可以根据系统时间创建一个加密下载URL的脚本,但是一旦用户在一段时间内调用它,他就会从脚本中获取解密的URL。