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

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

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

现在,每当用户上传图片,我们需要检查这是否仍然允许,但我们不希望1000个用户连续扫描我们的硬盘计数文件大小在他们的目录。 所以编写一个脚本来计算用户目录中的所有文件大小不是我猜的选项吗?

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

将上传的大小保存在数据库表中,为特定用户进行总计(图片大小),并在上传时将其与上限进行比较。

为避免总和操作,最好将上传的大小值添加到用户表中的列(TotalUploadsSize),并将其与每次上传所允许的最大值进行比较。

你可以用文件系统上的磁盘配额做一些事情。

查看关于每个目录的配额的相关问题。 如果您有或可以使用XFS,那么您可以设置项目配额。