FIX: Discourse.S3BaseUrl did not account for subfolder bucket names.

This commit is contained in:
Guo Xiang Tan
2018-07-06 15:52:23 +08:00
parent 73e30ff4c2
commit 875008522d
3 changed files with 7 additions and 4 deletions

View File

@ -132,6 +132,11 @@ class SiteSetting < ActiveRecord::Base
SiteSetting.enable_s3_uploads || GlobalSetting.use_s3? SiteSetting.enable_s3_uploads || GlobalSetting.use_s3?
end end
def self.s3_base_url
path = self.s3_upload_bucket.split("/", 2)[1]
"#{self.absolute_base_url}#{path ? '/' + path : ''}"
end
def self.absolute_base_url def self.absolute_base_url
bucket = SiteSetting.enable_s3_uploads ? Discourse.store.s3_bucket_name : GlobalSetting.s3_bucket_name bucket = SiteSetting.enable_s3_uploads ? Discourse.store.s3_bucket_name : GlobalSetting.s3_bucket_name

View File

@ -84,11 +84,9 @@ class Upload < ActiveRecord::Base
# when using s3, we need to replace with the absolute base url # when using s3, we need to replace with the absolute base url
if SiteSetting.Upload.s3_cdn_url.present? if SiteSetting.Upload.s3_cdn_url.present?
path = Discourse.store.s3_bucket.split("/", 2)[1]
url = url.sub( url = url.sub(
SiteSetting.Upload.s3_cdn_url, SiteSetting.Upload.s3_cdn_url,
"#{Discourse.store.absolute_base_url}#{path ? '/' + path : ''}" SiteSetting.Upload.s3_base_url
) )
end end

View File

@ -58,7 +58,7 @@
<%- if SiteSetting.Upload.s3_cdn_url.present? %> <%- if SiteSetting.Upload.s3_cdn_url.present? %>
Discourse.S3CDN = '<%= SiteSetting.Upload.s3_cdn_url %>'; Discourse.S3CDN = '<%= SiteSetting.Upload.s3_cdn_url %>';
<%- end %> <%- end %>
Discourse.S3BaseUrl = '<%= SiteSetting.Upload.absolute_base_url %>'; Discourse.S3BaseUrl = '<%= SiteSetting.Upload.s3_base_url %>';
<%- end %> <%- end %>
})(); })();
</script> </script>