如何在 PHP Web 应用程序和 CentOS 中限制每个用户的磁盘空间

如何在 PHP Web 应用程序和 CentOS 中限制每个用户的磁盘空间

我们有一个用 PHP 编写的 Web 应用程序,我们希望所有用户都能够上传图像,例如 50MB。

我们将创建一个目录结构,以便每个用户都有自己的文件夹,如 app/user1/images app/user2/images ...

现在,每次用户上传图片时,我们都需要检查是否仍然允许这样做,但我们不希望 1000 个用户不断扫描我们的硬盘并计算其目录中的文件大小。因此,我猜编写一个计算用户目录中所有文件大小的脚本不是一个选择?

有没有更简单的方法来计算每个用户使用的空间并相应地限制我们的应用程序?

答案1

将上传的大小保存在数据库表中,对特定用户进行求和(图片大小)并将其与他们上传时的限制进行比较。

更好的方法是避免该求和操作,您可以将上传的大小值添加到用户表中的列(TotalUploadsSize),然后将其与每次上传允许的最大值进行比较。

答案2

您可以对文件系统的磁盘配额采取一些措施。

请参阅有关每人配额的相关问题目录。如果您有或可以使用 XFS,那么您可以设置项目配额。

相关内容