0

我把我的文件放在我的 VPS 上,用户可以直接下载所有文件。但我想隐藏我的实际文件路径并制作限时下载链接。我用谷歌搜索并找到了一些解决方案,但其中大多数是针对同一服务器上的文件,其中一些在 VPS 端有一些编码,但我无法在我的 VPS 上编写任何 php 代码,因为它不支持 php。我还尝试了一些运行良好的脚本,但生成的链接不可恢复,并且在下载完成之前没有显示文件大小。我该如何解决这些问题?

4

2 回答 2

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;
?>
于 2013-01-16T15:04:14.350 回答
0

如果您无法更改实际的下载链接,它们将一直可供下载,直到它们从服务器中删除。当然,您可以制作一个脚本,根据系统时间对下载 URL 进行加密,但是一旦用户在一段时间内调用它们,他就会从脚本中获取解密的 URL。

于 2013-01-16T15:10:56.317 回答