如何对用户(独立应用的内部用户,非操作系统用户)进行磁盘配额限制?

lsgt 2005-02-06 09:45:32
在我的应用里面,用户的数据严格限制在一个目录,在这个目录下有且仅有该用户的数据,所以我唯一想到的办法是,当用户写磁盘的时候,递归计算该目录下的文件占用空间,然后判断能否写入。不过这样当子目录和文件数目很大的时候,非常耗时。而且这样经常访问磁盘,性能也很必然低下。

在操作系统提供的磁盘配额限制功能,都是基于操作系统用户的(比如WINDOWS和LINUX都是),
但在我的应用里,不可能为每个用户开一个系统帐号,例如BBS就不可能为每个注册用户分配一个操作系统帐号。

VSFTPD用虚拟用户来实现ftp用户与系统用户的分离,我也想使用类似方式管理用户,不过它有没有磁盘配额的功能就不知道了(偶是菜鸟,看资料看的,VSFTPD没用过),如果有,那它内部是如何实现的呢?
...全文
155 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangk 2005-02-28
  • 打赏
  • 举报
回复
一个叫Serv-U的ftp服务软件就有磁盘配额限制的功能。
其实大多数的ftp服务软件都有磁盘配额限制的功能,就看能不能让用户明显的找到。
lsgt 2005-02-28
  • 打赏
  • 举报
回复
没有办法了吗
lsgt 2005-02-21
  • 打赏
  • 举报
回复
修改的时候计算也行,不过有一个局限,就是如果别的程序修改了该目录下的东东,这时候就麻烦了。如果每次需要目录占用空间的值都需要递归计算,太耗时了。

比如FTP服务器的磁盘配额限制,FTP服务器程序可以在用户修改该用户的数据时记录,但如果用户通过别的方式,例如HTTP上传,这时候FTP服务器记录的数据就不对了。

有没有其他办法来限制?
wangzhanlili 2005-02-16
  • 打赏
  • 举报
回复
在ntfs 下有 磁盘配额限制 这个功能 ,可以用程序调用

但在fat32下 就要自己判断了。

比如在使用的时候判断 该目录的总大小。。。。
legendhui 2005-02-16
  • 打赏
  • 举报
回复
up
zhufeng98 2005-02-16
  • 打赏
  • 举报
回复
用户的写入读出访问不是都通过你控制的,你做个记录不就行了! 每次添加了多少,删除了多少,记录下来,不是就不需要统计了? 再定时计算统计校正一下不就ok了!

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧