我有一堆文件位于网络服务器的非公共区域。这些文件可能非常大,应该可以通过动态生成的临时链接访问(例如有效期为 1 小时)。经常提到的一种解决方案是使用散列并在 php 中检查散列是否仍然有效,然后从 php 脚本流式传输文件:
<?
$hash = $_GET['hash'];
if (hash == OK)
{
header("Content-Type: ...");
readfile(‘/path/of/file.zip");
}
?>
假设用户的互联网连接速度非常慢,那么 php 脚本可能会在 30 秒后超时。我认为更好的解决方案是 mod_rewrite,但是如何正确完成?:
RewriteEngine On
// Check if hash is ok. If true get real filename from php and stream it's content