我想在rails app中使用linux quota来限制用户在磁盘上的空间使用量。但我目前的实现将保存用户的附件,因为他们拥有哪个启动rails应用程序的人。我是否需要在Linux服务器上创建每个用户并为其分配磁盘配额?
那么,是否有任何rails插件/宝石允许我这样做?什么是github解决方案?它们不仅限制了附件的大小,还限制了用户的git存储库。谢谢。
答案 0 :(得分:5)
最好在应用程序级别限制用户的磁盘空间使用,而不使用操作系统级别的工具。
举个简单示例,将disk_quota
和current_disk_usage
字段添加到用户模型,在每次成功上传文件后更新current_disk_usage
。在每次上传文件之前,如果上传的文件大小为+ current_disk_usage
>,则会抛出异常disk_quota
。
这是一种更通用和跨平台的方法。这样您就不会限制自己使用Linux操作系统,可以将文件和应用程序服务器存储在不同的计算机上,可以将文件存储在Amazon S3上等等。此外,它更易于维护。