如何为用户提供文件存储限制?

Cal*_*bHC 7 ruby limits ruby-on-rails file-storage

我正在使用Rails正在开发一个Web应用程序,并想知道是否有人知道跟踪文件存储限制的好方法?我们希望为用户提供可用于上传文件的特定空间,我们使用回形针在Amazon S3上进行存储.有什么想法吗?谢谢

Mik*_*bee 7

可以与paperclip一起使用的可选列之一是OBJECT_file_size,您可以总结一下

# Assuming a user has many files relationship
@user.uploads.sum(:image_file_size)
Run Code Online (Sandbox Code Playgroud)

至于实际强加上限,我建议在任何文件模型上创建自定义验证,以便您可以将错误和问题传递回客户端.


Dam*_*IEU 6

Paperclip存储文件大小.
所以你可以为一个用户做一些事情:

def used_file_size
    self.files.sum(:document_file_size)
end
Run Code Online (Sandbox Code Playgroud)

然后,您将拥有每个用户文档的总大小.
然后,您可以添加最大大小限制,如果用户已达到该大小,则不验证文档的上载.