我们有一个用 PHP 编写的 Web 应用程序,我们希望我们的所有用户都能够上传图像,例如 50MB。
我们将创建一个目录结构,以便每个用户都有自己的文件夹,例如 app/user1/images app/user2/images ...
现在,每次用户上传图像时,我们都需要检查是否仍然允许这样做,但我们不希望 1000 个用户连续扫描我们的硬盘驱动器,计算他们目录中的文件大小。因此,我想编写一个计算用户目录中所有文件大小的脚本不是一个选项?
有没有更简单的方法来计算每个用户的已用空间并相应地限制我们的应用程序?
将上传的大小保存在数据库表中,为特定用户计算总和(图片大小),并将其与上传时的限制进行比较。
更好地避免该求和操作,您可以将上传的大小值添加到用户表中的列 (TotalUploadsSize),并将其与每次上传允许的最大值进行比较。
您可以对文件系统上的磁盘配额做一些事情。
请参阅有关每个目录的配额的相关问题。如果您拥有或可以使用 XFS,那么您可以设置项目配额。