Class: ObjectStorage::CDN::FileUrl

Inherits:
Object
  • Object
show all
Defined in:
app/uploaders/object_storage/cdn/file_url.rb

Instance Method Summary collapse

Constructor Details

#initialize(file:, ip_address:, redirect_params: {}) ⇒ FileUrl

Returns a new instance of FileUrl.



6
7
8
9
10
# File 'app/uploaders/object_storage/cdn/file_url.rb', line 6

def initialize(file:, ip_address:, redirect_params: {})
  @file = file
  @ip_address = ip_address
  @redirect_params = redirect_params
end

Instance Method Details

#urlObject



12
13
14
15
16
17
18
19
20
# File 'app/uploaders/object_storage/cdn/file_url.rb', line 12

def url
  if file.respond_to?(:cdn_enabled_url)
    result = file.cdn_enabled_url(ip_address, redirect_params[:query])
    Gitlab::ApplicationContext.push(artifact_used_cdn: result.used_cdn)
    result.url
  else
    file.url(**redirect_params)
  end
end