Module: Fog::AWS::Storage::Utils
Instance Attribute Summary collapse
-
#max_copy_chunk_size ⇒ Object
readonly
Returns the value of attribute max_copy_chunk_size.
-
#max_put_chunk_size ⇒ Integer
readonly
Amazon S3 limits max chunk size that can be uploaded/copied in a single request to 5GB.
-
#region ⇒ Object
Returns the value of attribute region.
Instance Method Summary collapse
- #cdn ⇒ Object
- #http_url(params, expires) ⇒ Object
- #https_url(params, expires) ⇒ Object
- #request_url(params) ⇒ Object
- #require_mime_types ⇒ Object
- #signed_url(params, expires) ⇒ Object
- #url(params, expires) ⇒ Object
- #validate_chunk_size(value, description) ⇒ Object
Instance Attribute Details
#max_copy_chunk_size ⇒ Object (readonly)
Returns the value of attribute max_copy_chunk_size.
132 133 134 |
# File 'lib/fog/aws/storage.rb', line 132 def max_copy_chunk_size @max_copy_chunk_size end |
#max_put_chunk_size ⇒ Integer (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.
131 132 133 |
# File 'lib/fog/aws/storage.rb', line 131 def max_put_chunk_size @max_put_chunk_size end |
#region ⇒ Object
Returns the value of attribute region.
121 122 123 |
# File 'lib/fog/aws/storage.rb', line 121 def region @region end |
Instance Method Details
#cdn ⇒ Object
134 135 136 137 138 139 140 |
# File 'lib/fog/aws/storage.rb', line 134 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
142 143 144 |
# File 'lib/fog/aws/storage.rb', line 142 def http_url(params, expires) signed_url(params.merge(:scheme => 'http'), expires) end |
#https_url(params, expires) ⇒ Object
146 147 148 |
# File 'lib/fog/aws/storage.rb', line 146 def https_url(params, expires) signed_url(params.merge(:scheme => 'https'), expires) end |
#request_url(params) ⇒ Object
169 170 171 172 |
# File 'lib/fog/aws/storage.rb', line 169 def request_url(params) params = request_params(params) params_to_url(params) end |
#require_mime_types ⇒ Object
155 156 157 158 159 160 161 162 163 164 165 166 167 |
# File 'lib/fog/aws/storage.rb', line 155 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
174 175 176 177 178 179 180 181 182 183 184 185 186 |
# File 'lib/fog/aws/storage.rb', line 174 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
150 151 152 153 |
# File 'lib/fog/aws/storage.rb', line 150 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
190 191 192 |
# File 'lib/fog/aws/storage.rb', line 190 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 |