mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: Remove 'backfill_etags' keyword argument from 'uploads:missing' rake task
And etags backfilling code is optimized
This commit is contained in:
@@ -123,11 +123,11 @@ module FileStore
|
||||
SiteSetting.Upload.s3_upload_bucket.downcase
|
||||
end
|
||||
|
||||
def list_missing_uploads(skip_optimized: false, backfill_etags: false)
|
||||
def list_missing_uploads(skip_optimized: false)
|
||||
if SiteSetting.enable_s3_inventory
|
||||
require 's3_inventory'
|
||||
S3Inventory.new(s3_helper, :upload).list_missing(backfill_etags: backfill_etags)
|
||||
S3Inventory.new(s3_helper, :optimized).list_missing(backfill_etags: backfill_etags) unless skip_optimized
|
||||
S3Inventory.new(s3_helper, :upload).list_missing
|
||||
S3Inventory.new(s3_helper, :optimized).list_missing unless skip_optimized
|
||||
else
|
||||
list_missing(Upload, "original/")
|
||||
list_missing(OptimizedImage, "optimized/") unless skip_optimized
|
||||
|
||||
@@ -24,7 +24,7 @@ class S3Inventory
|
||||
end
|
||||
end
|
||||
|
||||
def list_missing(backfill_etags: false)
|
||||
def list_missing
|
||||
if files.blank?
|
||||
error("Failed to list inventory from S3")
|
||||
return
|
||||
@@ -46,12 +46,12 @@ class S3Inventory
|
||||
end
|
||||
end
|
||||
|
||||
if backfill_etags
|
||||
uploads = model.where(etag: nil).joins("INNER JOIN #{table_name} ON #{model.table_name}.url ILIKE '%' || #{table_name}.key")
|
||||
uploads.select(:id, :"#{table_name}.etag").find_each do |upload|
|
||||
model.where(id: upload.id).update_all(etag: upload.etag)
|
||||
end
|
||||
end
|
||||
# backfilling etags
|
||||
connection.async_exec("UPDATE #{model.table_name}
|
||||
SET etag = #{table_name}.etag
|
||||
FROM #{table_name}
|
||||
WHERE #{model.table_name}.etag IS NULL
|
||||
AND url ILIKE '%' || #{table_name}.key")
|
||||
|
||||
uploads = (model == Upload) ? model.where("created_at < ?", inventory_date) : model
|
||||
missing_uploads = uploads.joins("LEFT JOIN #{table_name} ON #{table_name}.etag = #{model.table_name}.etag").where("#{table_name}.etag is NULL")
|
||||
|
||||
@@ -482,16 +482,16 @@ end
|
||||
# list all missing uploads and optimized images
|
||||
task "uploads:missing" => :environment do
|
||||
if ENV["RAILS_DB"]
|
||||
list_missing_uploads(skip_optimized: ENV['SKIP_OPTIMIZED'], backfill_etags: ENV['BACKFILL_ETAGS'])
|
||||
list_missing_uploads(skip_optimized: ENV['SKIP_OPTIMIZED'])
|
||||
else
|
||||
RailsMultisite::ConnectionManagement.each_connection do |db|
|
||||
list_missing_uploads(skip_optimized: ENV['SKIP_OPTIMIZED'], backfill_etags: ENV['BACKFILL_ETAGS'])
|
||||
list_missing_uploads(skip_optimized: ENV['SKIP_OPTIMIZED'])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def list_missing_uploads(skip_optimized: false, backfill_etags: false)
|
||||
Discourse.store.list_missing_uploads(skip_optimized: skip_optimized, backfill_etags: backfill_etags)
|
||||
def list_missing_uploads(skip_optimized: false)
|
||||
Discourse.store.list_missing_uploads(skip_optimized: skip_optimized)
|
||||
end
|
||||
|
||||
################################################################################
|
||||
|
||||
Reference in New Issue
Block a user