我希望你一切都好。
我正在用MySQL和AdminLTE3用纯PHP创建一个学习平台。
我到了为每个用户创建文件管理器的时候,遇到了以下问题。
我在文件夹中有以下结构:/var/www/html/uploads/users/<%hash(用户ID)%>
,我要找的是每个文件夹<%hash(用户ID)%>
每个用户的最大大小是2GB。
我正在使用MacOs BigSur进行开发,但在生产中它将在Ubuntu Server 18上!
我没有尝试设置max_file_size_upload
,我正在尝试将每个用户文件夹的最大大小设置为2GB
会是哪种类型的文件?我会非常谨慎地允许用户上传任意文件到我的web服务器。如果他们上传了.php
文件,他们就可以作为运行Web服务器的用户运行任何东西。
事实上,我会将它们保存在数据库中,并使用字段来创建元数据。这样,您就可以压缩和保存文件,并将大小和文件名存储为元数据。如果您正在使用If作为参考等,而不需要快速访问,我会推荐这一点。
或者,正如这个linux.se答案所述,您可以为每个用户创建一个装入的文件夹,并让文件系统整理与配额有关的所有内容。我可能还会以某种方式查看文件夹中的chroot
。这将(理论上)允许您向他们提供对文件的SFTP
/SSH
访问权限。
我还将研究在类似于生产服务器的环境中执行所有操作。我想起了流浪汉和码头工人spring。
或者,如果所有文件上载都由php处理,您可以节省使用的文件空间并保持一个运行总数,在php sript中确保它们没有超过其配额。