mirror of
https://github.com/System-End/cdn.git
synced 2026-04-19 16:18:17 +00:00
aaaaa
This commit is contained in:
parent
ff63bb3893
commit
bb1679827f
1 changed files with 22 additions and 4 deletions
|
|
@ -88,10 +88,28 @@ class BatchUploadService
|
|||
upload.destroy!
|
||||
end
|
||||
|
||||
# Remove destroyed uploads from the success list
|
||||
destroyed_ids = failed.select { |f| f.reason.start_with?("Removed:") }.map(&:filename)
|
||||
uploads.reject! { |u| destroyed_ids.include?(u.filename.to_s) }
|
||||
end
|
||||
def enforce_quota_after_upload!(uploads, failed)
|
||||
actual_total = @user.reload.total_storage_bytes
|
||||
max_storage = @policy.max_total_storage
|
||||
|
||||
return if actual_total <= max_storage
|
||||
|
||||
overage = actual_total - max_storage
|
||||
reclaimed = 0
|
||||
destroyed_ids = []
|
||||
|
||||
uploads.reverse.each do |upload|
|
||||
break if reclaimed >= overage
|
||||
|
||||
reclaimed += upload.byte_size
|
||||
destroyed_ids << upload.id
|
||||
failed << FailedUpload[upload.filename.to_s, "Removed: concurrent uploads exceeded quota"]
|
||||
upload.destroy!
|
||||
end
|
||||
|
||||
uploads.reject! { |u| destroyed_ids.include?(u.id) }
|
||||
end
|
||||
|
||||
|
||||
def create_upload(file)
|
||||
content_type = Marcel::MimeType.for(file.tempfile, name: file.original_filename) ||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue