mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: correct urls in uploads table to point at dualstack
Last week we added support for dual stack urls but did not remap the the old records in the uploads and optimized images table This caused a few minor edge cases worst was that if you rebaked old images S3 CDN was not repopulated.
This commit is contained in:
65
spec/jobs/correct_missing_dualstack_urls_spec.rb
Normal file
65
spec/jobs/correct_missing_dualstack_urls_spec.rb
Normal file
@@ -0,0 +1,65 @@
|
||||
require 'rails_helper'
|
||||
|
||||
require_dependency 'jobs/onceoff/correct_missing_dualstack_urls'
|
||||
|
||||
describe Jobs::CorrectMissingDualstackUrls do
|
||||
|
||||
it 'corrects the urls' do
|
||||
|
||||
SiteSetting.s3_upload_bucket = "s3-upload-bucket"
|
||||
SiteSetting.s3_access_key_id = "s3-access-key-id"
|
||||
SiteSetting.s3_secret_access_key = "s3-secret-access-key"
|
||||
SiteSetting.enable_s3_uploads = true
|
||||
|
||||
# we will only correct for our base_url, random urls will be left alone
|
||||
expect(Discourse.store.absolute_base_url).to eq('//s3-upload-bucket.s3.dualstack.us-east-1.amazonaws.com')
|
||||
|
||||
current_upload = Upload.create!(
|
||||
url: '//s3-upload-bucket.s3.us-east-1.amazonaws.com/somewhere/a.png',
|
||||
original_filename: 'a.png',
|
||||
filesize: 100,
|
||||
user_id: -1,
|
||||
)
|
||||
|
||||
bad_upload = Upload.create!(
|
||||
url: '//s3-upload-bucket.s3.us-west-1.amazonaws.com/somewhere/a.png',
|
||||
original_filename: 'a.png',
|
||||
filesize: 100,
|
||||
user_id: -1,
|
||||
)
|
||||
|
||||
current_optimized = OptimizedImage.create!(
|
||||
url: '//s3-upload-bucket.s3.us-east-1.amazonaws.com/somewhere/a.png',
|
||||
filesize: 100,
|
||||
upload_id: current_upload.id,
|
||||
width: 100,
|
||||
height: 100,
|
||||
sha1: 'xxx',
|
||||
extension: '.png'
|
||||
)
|
||||
|
||||
bad_optimized = OptimizedImage.create!(
|
||||
url: '//s3-upload-bucket.s3.us-west-1.amazonaws.com/somewhere/a.png',
|
||||
filesize: 100,
|
||||
upload_id: current_upload.id,
|
||||
width: 110,
|
||||
height: 100,
|
||||
sha1: 'xxx',
|
||||
extension: '.png'
|
||||
)
|
||||
|
||||
Jobs::CorrectMissingDualstackUrls.new.execute_onceoff(nil)
|
||||
|
||||
bad_upload.reload
|
||||
expect(bad_upload.url).to eq('//s3-upload-bucket.s3.us-west-1.amazonaws.com/somewhere/a.png')
|
||||
|
||||
current_upload.reload
|
||||
expect(current_upload.url).to eq('//s3-upload-bucket.s3.dualstack.us-east-1.amazonaws.com/somewhere/a.png')
|
||||
|
||||
bad_optimized.reload
|
||||
expect(bad_optimized.url).to eq('//s3-upload-bucket.s3.us-west-1.amazonaws.com/somewhere/a.png')
|
||||
|
||||
current_optimized.reload
|
||||
expect(current_optimized.url).to eq('//s3-upload-bucket.s3.dualstack.us-east-1.amazonaws.com/somewhere/a.png')
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user