Class: SiteSetting::Upload

Inherits:
Object
  • Object
show all
Defined in:
app/models/site_setting.rb

Overview

helpers for getting s3 settings that fallback to global

Class Method Summary collapse

Class Method Details

.absolute_base_urlObject



178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
# File 'app/models/site_setting.rb', line 178

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.s3_region.start_with?("cn-")
      "//#{bucket}.s3.#{SiteSetting.Upload.s3_region}.amazonaws.com.cn"
    else
      "//#{bucket}.s3.dualstack.#{SiteSetting.Upload.s3_region}.amazonaws.com"
    end
  else
    "//#{bucket}.#{url_basename}"
  end
end

.enable_s3_uploadsObject



169
170
171
# File 'app/models/site_setting.rb', line 169

def self.enable_s3_uploads
  SiteSetting.enable_s3_uploads || GlobalSetting.use_s3?
end

.s3_base_urlObject



173
174
175
176
# File 'app/models/site_setting.rb', line 173

def self.s3_base_url
  path = self.s3_upload_bucket.split("/", 2)[1]
  "#{self.absolute_base_url}#{path ? "/" + path : ""}"
end

.s3_cdn_urlObject



153
154
155
# File 'app/models/site_setting.rb', line 153

def self.s3_cdn_url
  SiteSetting.enable_s3_uploads ? SiteSetting.s3_cdn_url : GlobalSetting.s3_cdn_url
end

.s3_endpointObject



165
166
167
# File 'app/models/site_setting.rb', line 165

def self.s3_endpoint
  SiteSetting.enable_s3_uploads ? SiteSetting.s3_endpoint : GlobalSetting.s3_endpoint
end

.s3_regionObject



157
158
159
# File 'app/models/site_setting.rb', line 157

def self.s3_region
  SiteSetting.enable_s3_uploads ? SiteSetting.s3_region : GlobalSetting.s3_region
end

.s3_upload_bucketObject



161
162
163
# File 'app/models/site_setting.rb', line 161

def self.s3_upload_bucket
  SiteSetting.enable_s3_uploads ? SiteSetting.s3_upload_bucket : GlobalSetting.s3_bucket
end