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.



122
123
124
# File 'lib/fog/aws/storage.rb', line 122

def disable_content_md5_validation
  @disable_content_md5_validation
end

#max_copy_chunk_sizeObject (readonly)

Returns the value of attribute max_copy_chunk_size.



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

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.



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

def max_put_chunk_size
  @max_put_chunk_size
end

#regionObject

Returns the value of attribute region.



121
122
123
# File 'lib/fog/aws/storage.rb', line 121

def region
  @region
end

Instance Method Details

#cdnObject



135
136
137
138
139
140
141
# File 'lib/fog/aws/storage.rb', line 135

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



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

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

#https_url(params, expires) ⇒ Object



147
148
149
# File 'lib/fog/aws/storage.rb', line 147

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

#request_url(params) ⇒ Object



170
171
172
173
# File 'lib/fog/aws/storage.rb', line 170

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

#require_mime_typesObject



156
157
158
159
160
161
162
163
164
165
166
167
168
# File 'lib/fog/aws/storage.rb', line 156

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



175
176
177
178
179
180
181
182
183
184
185
186
187
# File 'lib/fog/aws/storage.rb', line 175

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



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

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)


191
192
193
# File 'lib/fog/aws/storage.rb', line 191

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