Class: SiteSetting::Upload
- Inherits:
-
Object
- Object
- SiteSetting::Upload
- Defined in:
- app/models/site_setting.rb
Overview
helpers for getting s3 settings that fallback to global
Class Method Summary collapse
- .absolute_base_url ⇒ Object
- .enable_s3_transfer_acceleration ⇒ Object
- .enable_s3_uploads ⇒ Object
- .s3_base_url ⇒ Object
- .s3_cdn_url ⇒ Object
- .s3_endpoint ⇒ Object
- .s3_region ⇒ Object
- .s3_upload_bucket ⇒ Object
- .use_dualstack_endpoint ⇒ Object
Class Method Details
.absolute_base_url ⇒ Object
186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 |
# File 'app/models/site_setting.rb', line 186 def self.absolute_base_url url_basename = SiteSetting.s3_endpoint.split("/")[-1] bucket = ( if SiteSetting.enable_s3_uploads Discourse.store.s3_bucket_name else GlobalSetting.s3_bucket_name end ) # cf. http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region if SiteSetting.s3_endpoint.blank? || SiteSetting.s3_endpoint.end_with?("amazonaws.com") if SiteSetting.Upload.use_dualstack_endpoint "//#{bucket}.s3.dualstack.#{SiteSetting.Upload.s3_region}.amazonaws.com" else "//#{bucket}.s3.#{SiteSetting.Upload.s3_region}.amazonaws.com.cn" end else "//#{bucket}.#{url_basename}" end end |
.enable_s3_transfer_acceleration ⇒ Object
163 164 165 166 167 168 169 |
# File 'app/models/site_setting.rb', line 163 def self.enable_s3_transfer_acceleration if SiteSetting.enable_s3_uploads SiteSetting.enable_s3_transfer_acceleration else GlobalSetting.enable_s3_transfer_acceleration end end |
.enable_s3_uploads ⇒ Object
177 178 179 |
# File 'app/models/site_setting.rb', line 177 def self.enable_s3_uploads SiteSetting.enable_s3_uploads || GlobalSetting.use_s3? end |
.s3_base_url ⇒ Object
181 182 183 184 |
# File 'app/models/site_setting.rb', line 181 def self.s3_base_url path = self.s3_upload_bucket.split("/", 2)[1] "#{self.absolute_base_url}#{path ? "/" + path : ""}" end |
.s3_cdn_url ⇒ Object
147 148 149 |
# File 'app/models/site_setting.rb', line 147 def self.s3_cdn_url SiteSetting.enable_s3_uploads ? SiteSetting.s3_cdn_url : GlobalSetting.s3_cdn_url end |
.s3_endpoint ⇒ Object
159 160 161 |
# File 'app/models/site_setting.rb', line 159 def self.s3_endpoint SiteSetting.enable_s3_uploads ? SiteSetting.s3_endpoint : GlobalSetting.s3_endpoint end |
.s3_region ⇒ Object
151 152 153 |
# File 'app/models/site_setting.rb', line 151 def self.s3_region SiteSetting.enable_s3_uploads ? SiteSetting.s3_region : GlobalSetting.s3_region end |
.s3_upload_bucket ⇒ Object
155 156 157 |
# File 'app/models/site_setting.rb', line 155 def self.s3_upload_bucket SiteSetting.enable_s3_uploads ? SiteSetting.s3_upload_bucket : GlobalSetting.s3_bucket end |
.use_dualstack_endpoint ⇒ Object
171 172 173 174 175 |
# File 'app/models/site_setting.rb', line 171 def self.use_dualstack_endpoint return false if !SiteSetting.Upload.enable_s3_uploads return false if SiteSetting.Upload.s3_endpoint.present? !SiteSetting.Upload.s3_region.start_with?("cn-") end |