如何在rails app中使用磁盘配额?

时间:2012-02-07 03:39:22

标签: ruby-on-rails ruby linux quota

我想在rails app中使用linux quota来限制用户在磁盘上的空间使用量。但我目前的实现将保存用户的附件,因为他们拥有哪个启动rails应用程序的人。我是否需要在Linux服务器上创建每个用户并为其分配磁盘配额?

那么,是否有任何rails插件/宝石允许我这样做?什么是github解决方案?它们不仅限制了附件的大小,还限制了用户的git存储库。谢谢。

1 个答案:

答案 0 :(得分:5)

最好在应用程序级别限制用户的磁盘空间使用,而不使用操作系统级别的工具。

举个简单示例,将disk_quotacurrent_disk_usage字段添加到用户模型,在每次成功上传文件后更新current_disk_usage。在每次上传文件之前,如果上传的文件大小为+ current_disk_usage>,则会抛出异常disk_quota

这是一种更通用和跨平台的方法。这样您就不会限制自己使用Linux操作系统,可以将文件和应用程序服务器存储在不同的计算机上,可以将文件存储在Amazon S3上等等。此外,它更易于维护。