From bc89674b58022db0acf345d6d99bddbb1c67c0cd Mon Sep 17 00:00:00 2001 From: Andrew Schleifer Date: Wed, 16 May 2018 15:10:15 -0500 Subject: [PATCH] FIX for bucket name in GlobalSetting with folder When `s3_bucket="bucket/folder` in discourse.conf, absolute_base_url was bucket/folder.s3-region.amazonaws.com These names are bad, but this mirrors the s3_bucket/s3_bucket_name in S3Store N.B. that nearby s3_upload_bucket _should_ include the folder --- app/models/global_setting.rb | 4 ++++ app/models/site_setting.rb | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/models/global_setting.rb b/app/models/global_setting.rb index f0fb74b5a38..c81430d2cd5 100644 --- a/app/models/global_setting.rb +++ b/app/models/global_setting.rb @@ -85,6 +85,10 @@ class GlobalSetting end) == :true end + def self.s3_bucket_name + @s3_bucket_name ||= s3_bucket.downcase.split("/")[0] + end + # for testing def self.reset_s3_cache! @use_s3 = nil diff --git a/app/models/site_setting.rb b/app/models/site_setting.rb index 8f8332a39c1..ec8b8e76244 100644 --- a/app/models/site_setting.rb +++ b/app/models/site_setting.rb @@ -133,7 +133,7 @@ class SiteSetting < ActiveRecord::Base end def self.absolute_base_url - bucket = SiteSetting.enable_s3_uploads ? Discourse.store.s3_bucket_name : GlobalSetting.s3_bucket + bucket = SiteSetting.enable_s3_uploads ? Discourse.store.s3_bucket_name : GlobalSetting.s3_bucket_name # cf. http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region if SiteSetting.Upload.s3_region == "us-east-1"