我正在开发一个 Rails 应用程序,它允许用户通过神社将他们的图像上传到 AWS S3。到目前为止的设置工作得很好——但是,我想知道是否有任何直接的方法可以提取每个用户的上传总大小。
例如,我确实希望免费用户只允许上传最大 500MB,而会员只能上传 4GB。
在 Github 或 Google 上没有发现任何可用的东西,一般来说,也许有人可以分享他们的知识。干杯!
当前代码:
照片.rb
class Photo < ApplicationRecord
include ImageUploader[:image]
before_create :set_name
belongs_to :employee
belongs_to :user
private
def set_name
self.name = "Photo"
end
end
image_uploader.rb
require "image_processing/mini_magick"
class ImageUploader < Shrine
include ImageProcessing::MiniMagick
plugin :determine_mime_type
plugin :remove_attachment
plugin :store_dimensions
plugin :validation_helpers
plugin :pretty_location
plugin :processing
plugin :versions
Attacher.validate do
validate_max_size 5.megabytes, message: "is too large (max is 5 MB)"
validate_mime_type_inclusion %w[image/jpeg image/png], message: " extension is invalid. Please upload JPEGs, JPGs and PNGs only."
validate_min_width 400, message: " must have a minimum width of 400 pixel."
validate_min_height 250, message: " must have a minimum height of 250 pixel."
end
process(:store) do |io, context|
size_800 = resize_to_limit!(io.download, 800, 800)
size_300 = resize_to_limit!(io.download, 300, 300)
{original: io, large: size_800, small: size_300}
end
end