Php拷贝CPU消耗
我正在创建一个允许用户通过JavaScript插件查看文件的网站 为了做到这一点,并维护文件的安全性,我将在每次访问JavaScript插件时创建原始文件的唯一副本Php拷贝CPU消耗,php,javascript,cpu,Php,Javascript,Cpu,我正在创建一个允许用户通过JavaScript插件查看文件的网站 为了做到这一点,并维护文件的安全性,我将在每次访问JavaScript插件时创建原始文件的唯一副本 原始文件的最大容量为30mb,对于系统的多个用户,该文件的扩展如何?假设有100人创建并访问该文件的副本。您可以通过创建一个htaccess重写来将用户引用到PHP脚本: RewriteEngine On RewriteRule ^download/([^/]+) /lib/download.php?file=$1 [QSA] 这
原始文件的最大容量为30mb,对于系统的多个用户,该文件的扩展如何?假设有100人创建并访问该文件的副本。您可以通过创建一个htaccess重写来将用户引用到PHP脚本:
RewriteEngine On
RewriteRule ^download/([^/]+) /lib/download.php?file=$1 [QSA]
这将把任何请求转发到yourdomain.com/download/anyfilehere.mp3?one\u time\u token=ABCDEFG
到lib/download.php
,并将$\u GET['file']
设置为anyfilehere.mp3
。一次性令牌
$\u GET
参数将被转发,正如我们使用的[QSA]
一样
download.php
看起来就像这样:
<?php
if (!empty($_GET['file'])) {
if (!empty($_GET['one_time_token'])) {
if (TokenOK($_GET['one_time_token'])) { //Create a function called TokenOK where you look up the download token in eg. a database
$fileName = '/var/www/downloadfolder/' . $_GET['file'];
if (file_exists($fileName)) {
ExpireToken($_GET['one_time_token']); //Create a function called ExpireToken where you expire the token in eg. the database
readfile($fileName); //Read the file to the user
die();
} else {
die('Error: file not found');
}
} else {
die('Error: token is not OK');
}
} else {
die('Error: token is not specified');
}
} else {
die('Error: file is not specified');
}
?>
需要考虑的事项:
- 输出指定文件内容类型的mime头类型
- 阅读
- 将一次性令牌限制为仅在特定时间范围内有效(并通知您的用户),而不是只允许下载一次
- 如果用户取消下载,因此无法再次下载,您的系统将如何反应
- 如果下载失败怎么办?他们需要请求新的下载链接吗
- 如果是流式MP3文件,请确保搜索工作正常(如果您在MP3流式传输到的位置之外进行搜索,则很可能不会进行搜索,因为它会为MP3文件创建新的请求)
uniqid
),然后将该ID发送给用户并将其用于链接。您的数据库应该是ID | token | ip | valid
或ID | token | ip | valid | valid |直到
根据您使用的方法。ip是可选的,但可能很好,这样您就可以看到是否有一个用户正在下载相同的文件10亿次。非常感谢,非常爱您哈哈哈 :)