Module: Fog::AWS::Storage::Utils

Included in:
Mock, Real
Defined in:
lib/fog/aws/storage.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#disable_content_md5_validationObject

Returns the value of attribute disable_content_md5_validation.



134
135
136
# File 'lib/fog/aws/storage.rb', line 134

def disable_content_md5_validation
  @disable_content_md5_validation
end

#max_copy_chunk_sizeObject (readonly)

Returns the value of attribute max_copy_chunk_size.



145
146
147
# File 'lib/fog/aws/storage.rb', line 145

def max_copy_chunk_size
  @max_copy_chunk_size
end

#max_put_chunk_sizeInteger (readonly)

Amazon S3 limits max chunk size that can be uploaded/copied in a single request to 5GB. Other S3-compatible storages (like, Ceph) do not have such limit. Ceph shows much better performance when file is copied as a whole, in a single request. fog-aws user can use these settings to configure chunk sizes. A non-positive value will tell fog-aws to use a single put/copy request regardless of file size.



144
145
146
# File 'lib/fog/aws/storage.rb', line 144

def max_put_chunk_size
  @max_put_chunk_size
end

#regionObject

Returns the value of attribute region.



133
134
135
# File 'lib/fog/aws/storage.rb', line 133

def region
  @region
end

Instance Method Details

#cdnObject



147
148
149
150
151
152
153
# File 'lib/fog/aws/storage.rb', line 147

def cdn
  @cdn ||= Fog::AWS::CDN.new(
    :aws_access_key_id => @aws_access_key_id,
    :aws_secret_access_key => @aws_secret_access_key,
    :use_iam_profile => @use_iam_profile
  )
end

#http_url(params, expires) ⇒ Object



155
156
157
# File 'lib/fog/aws/storage.rb', line 155

def http_url(params, expires)
  signed_url(params.merge(:scheme => 'http'), expires)
end

#https_url(params, expires) ⇒ Object



159
160
161
# File 'lib/fog/aws/storage.rb', line 159

def https_url(params, expires)
  signed_url(params.merge(:scheme => 'https'), expires)
end

#request_url(params) ⇒ Object



182
183
184
185
# File 'lib/fog/aws/storage.rb', line 182

def request_url(params)
  params = request_params(params)
  params_to_url(params)
end

#require_mime_typesObject



168
169
170
171
172
173
174
175
176
177
178
179
180
# File 'lib/fog/aws/storage.rb', line 168

def require_mime_types
  begin
    # Use mime/types/columnar if available, for reduced memory usage
    require 'mime/types/columnar'
  rescue LoadError
    begin
      require 'mime/types'
    rescue LoadError
      Fog::Logger.warning("'mime-types' missing, please install and try again.")
      exit(1)
    end
  end
end

#signed_url(params, expires) ⇒ Object



187
188
189
190
191
192
193
194
195
196
197
198
199
# File 'lib/fog/aws/storage.rb', line 187

def signed_url(params, expires)
  refresh_credentials_if_expired

  #convert expires from a point in time to a delta to now
  expires = expires.to_i
  if @signature_version == 4
    params = v4_signed_params_for_url(params, expires)
  else
    params = v2_signed_params_for_url(params, expires)
  end

  params_to_url(params)
end

#url(params, expires) ⇒ Object



163
164
165
166
# File 'lib/fog/aws/storage.rb', line 163

def url(params, expires)
  Fog::Logger.deprecation("Fog::AWS::Storage => #url is deprecated, use #https_url instead [light_black](#{caller.first})[/]")
  https_url(params, expires)
end

#validate_chunk_size(value, description) ⇒ Object



203
204
205
# File 'lib/fog/aws/storage.rb', line 203

def validate_chunk_size(value, description)
  raise "#{description} (#{value}) is less than minimum #{MIN_MULTIPART_CHUNK_SIZE}" unless value <= 0 || value >= MIN_MULTIPART_CHUNK_SIZE
end