Php复制CPU消耗
Php copy CPU consumption
我正在创建一个允许用户通过JavaScript插件查看文件的网站。
为了做到这一点,并维护文件的安全性,我将在每次访问JavaScript插件时创建原始文件的一次性唯一副本。
原始文件的最大容量为30mb,对于系统的多个用户,该如何扩展?假设有100个人创建并访问该文件的副本。
您可以通过创建一个htaccess重写来将用户引用到PHP脚本来实现这一点:
RewriteEngine On
RewriteRule ^download/([^/]+) /lib/download.php?file=$1 [QSA]
这将把对yourdomain.com/download/anyfilehere.mp3?one_time_token=ABCDEFG
的任何请求转发给lib/download.php
,并将$_GET['file']
设置为anyfilehere.mp3
。one_time_token
$_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头类型,指定文件的内容类型
- 阅读
readfile
上的PHP手册条目 - 限制一次性令牌仅在特定时间范围内有效(并通知您的用户),而不是允许它仅下载一次
- 如果用户取消下载,因此无法再次下载,您的系统将如何反应?
- 如果下载失败怎么办?他们需要请求一个新的下载链接吗?
- 如果它是一个流MP3文件,确保搜索工作(它很可能不会,如果你在MP3已经流到的地方寻找,因为它会创建一个新的MP3文件请求)
相关文章:
- cpu:phantom:page的比例可以大于1:1:1吗
- Architecture for CPU intensive tasks with NodeJS & Socke
- 使用PHP来阻止用户下载代码,但代码占用cpu
- Express.js应用程序最大CPU
- PhantomJS与嵌入式web服务器只使用一个CPU
- 如何避免webGL着色器加载给cpu带来太多负载
- 在构造函数中定义函数会比将其附加到原型消耗更多的内存
- Web Worker 能否利用 100% 的多核 CPU
- 使 Angular JS 实时 ajax 请求消耗更少
- 生成随机唯一数据的时间太长,占用了100%的CPU
- 将纹理从GPU复制到CPU
- 在消耗大量内存后,浏览器在创建图像Blob的ObjectURL时抛出错误
- javascript setInvertal的使用增加了CPU的内存消耗
- requestAnimationFrame在Firefox中消耗CPU
- jquery regex修补程序导致高cpu消耗
- 简单的拉斐尔.js动画,使用"animation.repeat"消耗100%的cpu
- Php复制CPU消耗
- 如何使用javascript停止gif动画以防止高内存和cpu消耗
- 建立WebSockets连接时CPU消耗100%
- 时间间隔大的Settimeout函数会消耗大量的CPU功率