mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
fix s3_cdn_url when the s3 bucket contains a folder
This commit is contained in:
parent
ea7ffac17e
commit
4be0e31459
@ -85,7 +85,8 @@ module FileStore
|
|||||||
def cdn_url(url)
|
def cdn_url(url)
|
||||||
return url if SiteSetting.Upload.s3_cdn_url.blank?
|
return url if SiteSetting.Upload.s3_cdn_url.blank?
|
||||||
schema = url[/^(https?:)?\/\//, 1]
|
schema = url[/^(https?:)?\/\//, 1]
|
||||||
url.sub("#{schema}#{absolute_base_url}", SiteSetting.Upload.s3_cdn_url)
|
folder = @s3_helper.s3_bucket_folder_path.nil? ? "" : "#{@s3_helper.s3_bucket_folder_path}/"
|
||||||
|
url.sub("#{schema}#{absolute_base_url}/#{folder}", "#{SiteSetting.Upload.s3_cdn_url}/")
|
||||||
end
|
end
|
||||||
|
|
||||||
def cache_avatar(avatar, user_id)
|
def cache_avatar(avatar, user_id)
|
||||||
|
@ -4,7 +4,7 @@ class S3Helper
|
|||||||
|
|
||||||
class SettingMissing < StandardError; end
|
class SettingMissing < StandardError; end
|
||||||
|
|
||||||
attr_reader :s3_bucket_name
|
attr_reader :s3_bucket_name, :s3_bucket_folder_path
|
||||||
|
|
||||||
def initialize(s3_bucket_name, tombstone_prefix = '', options = {})
|
def initialize(s3_bucket_name, tombstone_prefix = '', options = {})
|
||||||
@s3_options = default_s3_options.merge(options)
|
@s3_options = default_s3_options.merge(options)
|
||||||
|
@ -725,6 +725,29 @@ describe PrettyText do
|
|||||||
|
|
||||||
test_s3_cdn
|
test_s3_cdn
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_s3_with_subfolder_cdn
|
||||||
|
raw = <<~RAW
|
||||||
|
<img src='https:#{Discourse.store.absolute_base_url}/subfolder/original/9/9/99c9384b8b6d87f8509f8395571bc7512ca3cad1.jpg'>
|
||||||
|
RAW
|
||||||
|
|
||||||
|
html = <<~HTML
|
||||||
|
<p><img src="https://awesome.cdn/subfolder/original/9/9/99c9384b8b6d87f8509f8395571bc7512ca3cad1.jpg"></p>
|
||||||
|
HTML
|
||||||
|
|
||||||
|
expect(PrettyText.cook(raw)).to eq(html.strip)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'can substitute s3 with subfolder cdn when added via global setting' do
|
||||||
|
|
||||||
|
global_setting :s3_access_key_id, 'XXX'
|
||||||
|
global_setting :s3_secret_access_key, 'XXX'
|
||||||
|
global_setting :s3_bucket, 'XXX/subfolder'
|
||||||
|
global_setting :s3_region, 'XXX'
|
||||||
|
global_setting :s3_cdn_url, 'https://awesome.cdn/subfolder'
|
||||||
|
|
||||||
|
test_s3_with_subfolder_cdn
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "emoji" do
|
describe "emoji" do
|
||||||
|
Loading…
Reference in New Issue
Block a user