ファイルを VPS に配置すると、ユーザーはすべてのファイルを直接ダウンロードできます。しかし、実際のファイル パスを非表示にして、時間制限付きのダウンロード リンクを作成したいと考えています。私はそれをグーグルで調べていくつかの解決策を見つけましたが、それらのほとんどは同じサーバーにあるファイル用であり、それらのいくつかにはVPS側でコーディングがいくつかありましたが、phpをサポートしていないため、VPSにphpコードを書くことができません. また、うまく機能するスクリプトをいくつか試してみましたが、生成されたリンクは再開できず、ダウンロードが完了するまでファイルサイズが表示されませんでした。これらの問題を解決するにはどうすればよいですか?
質問する
1852 次
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 に答える