我的Rails 6应用程序使用ruby@2.7和carrierwave上传图像和视频。这里我正在寻找类似于我们的基本Rails 缓存机制的东西,它可以帮助我跟踪用户上传的总大小和到目前为止仍然保持的总大小。
Rails应用程序为每个用户上传图片/视频(上传到S3)提供了1GB的默认大小,因此有必要跟踪和维护每个上传大小,这样这种机制将有助于警告用户他已经消耗了给定的限制以及消耗/留给他的大小。
到目前为止我做了什么!
每一个user has many图像和视频。因此,在每次上传时,我都会在每个*_uploader.rb类中触发一个回调,以获得total file size和添加,而前面的一个已经存在于user.total_size_consumed中,默认值为0。
我只想知道是否还有其他方法来实现同样的目标,因为我也需要实现转换(MB/GB/TB)。
提前谢谢。
发布于 2021-01-25 14:19:32
你有上传项目类和表格吗?您应该向该表upload_size添加一个字段,并使用回调将上传大小存储在那里。
这意味着当用户删除上传时,您将能够通过在项目模型中使用before_destroy回调来减少上传的总大小。
您也可以很容易地为用户重置上传的总大小.只有所有上传项目的upload_size之和。
https://stackoverflow.com/questions/65886257
复制相似问题