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.



130
131
132
# File 'lib/fog/aws/storage.rb', line 130

def disable_content_md5_validation
  @disable_content_md5_validation
end

#max_copy_chunk_sizeObject (readonly)

Returns the value of attribute max_copy_chunk_size.



141
142
143
# File 'lib/fog/aws/storage.rb', line 141

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.



140
141
142
# File 'lib/fog/aws/storage.rb', line 140

def max_put_chunk_size
  @max_put_chunk_size
end

#regionObject

Returns the value of attribute region.



129
130
131
# File 'lib/fog/aws/storage.rb', line 129

def region
  @region
end

Instance Method Details

#cdnObject



143
144
145
146
147
148
149
# File 'lib/fog/aws/storage.rb', line 143

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



151
152
153
# File 'lib/fog/aws/storage.rb', line 151

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

#https_url(params, expires) ⇒ Object



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

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

#request_url(params) ⇒ Object



178
179
180
181
# File 'lib/fog/aws/storage.rb', line 178

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

#require_mime_typesObject



164
165
166
167
168
169
170
171
172
173
174
175
176
# File 'lib/fog/aws/storage.rb', line 164

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



183
184
185
186
187
188
189
190
191
192
193
194
195
# File 'lib/fog/aws/storage.rb', line 183

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



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

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

Parameters:

  • value (int)
  • description (str)


199
200
201
# File 'lib/fog/aws/storage.rb', line 199

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