0

ファイルを VPS に配置すると、ユーザーはすべてのファイルを直接ダウンロードできます。しかし、実際のファイル パスを非表示にして、時間制限付きのダウンロード リンクを作成したいと考えています。私はそれをグーグルで調べていくつかの解決策を見つけましたが、それらのほとんどは同じサーバーにあるファイル用であり、それらのいくつかにはVPS側でコーディングがいくつかありましたが、phpをサポートしていないため、VPSに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 に答える