FIX: inline_uploads and subfolder (#8076)

FIX: inline_uploads and subfolder (#8076)

  • FIX: inline_uploads and subfolder

  • if subfolder, also look for images with a path containing cdn_url + relative_url_root

  • FIX: migrate_to_s3 task and subfolder

diff --git a/app/services/inline_uploads.rb b/app/services/inline_uploads.rb
index 039d5f3..7ffa429 100644
--- a/app/services/inline_uploads.rb
+++ b/app/services/inline_uploads.rb
@@ -282,7 +282,10 @@ class InlineUploads
       /(#{base_url}\/uploads\/#{db}#{UPLOAD_REGEXP_PATTERN})/,
     ]
 
-    regexps << /(#{cdn_url}\/uploads\/#{db}#{UPLOAD_REGEXP_PATTERN})/ if cdn_url
+    if cdn_url
+      regexps << /(#{cdn_url}\/uploads\/#{db}#{UPLOAD_REGEXP_PATTERN})/
+      regexps << /(#{cdn_url}#{GlobalSetting.relative_url_root}\/uploads\/#{db}#{UPLOAD_REGEXP_PATTERN})/ unless GlobalSetting.relative_url_root.nil?
+    end
 
     if Discourse.store.external?
       if Rails.configuration.multisite
diff --git a/lib/tasks/uploads.rake b/lib/tasks/uploads.rake
index bf7b539..05b8030 100644
--- a/lib/tasks/uploads.rake
+++ b/lib/tasks/uploads.rake
@@ -306,7 +306,7 @@ def migrate_to_s3
   puts "*" * 30 + " DRY RUN " + "*" * 30 if dry_run
   puts "Migrating uploads to S3 for '#{db}'..."
 
-  if Upload.by_users.where("url NOT LIKE '//%' AND url NOT LIKE '/uploads/#{db}/original/_X/%'").exists?
+  if Upload.by_users.where("url NOT LIKE '//%' AND url NOT LIKE '#{GlobalSetting.relative_url_root}/uploads/#{db}/original/_X/%'").exists?
     puts <<~TEXT
       Some uploads were not migrated to the new scheme. Please run these commands in the rails console

GitHub sha: 503a11cc

1 Like

DEV: improve subfolder inline logic