[英]php apache and temporary files
我有一个基于Web的应用程序,该服务器通过与Soap服务器进行交互来将服务器的内容提供给经过身份验证的用户。 soap服务器具有用户需要能够下载的文件。
将这些文件提供给用户的最佳方法是什么? 当用户请求文件时,我的服务器将对soap服务器进行soap调用以提取文件,然后通过引用指向该文件的链接将其提供给用户。
问题是这些临时文件需要在某个时候清理,我的第一个想法是这是一个基于Linux的系统,将它们存储在/ tmp /中,然后让系统负责清理。
Is it possible to store these files in /tmp and have apache serve them
to the user?
如果apache因为不在Web根目录之外而无法访问/ tmp,则可能可以在Web根目录中创建指向/ tmp / filename的符号链接吗? (尽管有时需要清理符号链接。)
建议/评论最好的方式来管理这些临时文件?
I am aware that I could write a script and have it executed as a cron job on
regular intervals but was wondering if there was a way similar to presented
above to do this and not have to handle deleting the files?
Apache很有可能读取tmp目录,但是这种方法听起来很糟糕。 我的方法是让PHP读取文件并将其发送给用户。 基本上,您发送适当的HTTP标头以指示要发送的内容类型和文件使用的名称,然后仅用echo将文件吐出(例如)。
似乎在另一个问题中对此进行了很好的讨论:
这种方法的另一个好处是,由于用户和文件之间存在PHP,因此可以完全控制您。 这意味着您可以添加其他安全措施(例如,时间控制),从各个位置提取文件以分配带宽使用率,等等。
[其他材料]
抱歉,没有直接解决您的问题。 如果您使用PHP来提供文件,则它们不必驻留在Apache Web根目录中,只需在Apache / PHP对其具有文件系统读取访问权限即可。 因此,您确实可以简单地将它们存储在/ tmp中,然后让操作系统为您清理它们。 但是,您可能需要调整这些清理的频率,以使音量保持在所需水平。
如果要确保经过一段时间或一定数量的下载后,访问被可靠地拒绝,则可以将跟踪信息存储在数据库中(例如,用户的标志,指示他们已经下载了文件),并且然后使用您的下载脚本进行检查,并可能拒绝下载。 这可以有效地将访问的安全性与清除频率区分开,这是您可能需要独立调整的两件事。
希望对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.