FIX: always set the 'content_type' when storing a file on S3
This commit is contained in:
parent
41a2f2cfda
commit
93dfc87b99
|
@ -17,9 +17,9 @@ module FileStore
|
||||||
store_file(file, path, filename: upload.original_filename, content_type: content_type, cache_locally: true)
|
store_file(file, path, filename: upload.original_filename, content_type: content_type, cache_locally: true)
|
||||||
end
|
end
|
||||||
|
|
||||||
def store_optimized_image(file, optimized_image)
|
def store_optimized_image(file, optimized_image, content_type = nil)
|
||||||
path = get_path_for_optimized_image(optimized_image)
|
path = get_path_for_optimized_image(optimized_image)
|
||||||
store_file(file, path)
|
store_file(file, path, content_type: content_type)
|
||||||
end
|
end
|
||||||
|
|
||||||
# options
|
# options
|
||||||
|
@ -27,16 +27,16 @@ module FileStore
|
||||||
# - content_type
|
# - content_type
|
||||||
# - cache_locally
|
# - cache_locally
|
||||||
def store_file(file, path, opts={})
|
def store_file(file, path, opts={})
|
||||||
filename = opts[:filename].presence
|
filename = opts[:filename].presence || File.basename(path)
|
||||||
content_type = opts[:content_type].presence
|
|
||||||
# cache file locally when needed
|
# cache file locally when needed
|
||||||
cache_file(file, File.basename(path)) if opts[:cache_locally]
|
cache_file(file, File.basename(path)) if opts[:cache_locally]
|
||||||
# stored uploaded are public by default
|
# stored uploaded are public by default
|
||||||
options = { acl: "public-read" }
|
options = {
|
||||||
|
acl: "public-read",
|
||||||
|
content_type: opts[:content_type].presence || Rack::Mime.mime_type(File.extname(filename))
|
||||||
|
}
|
||||||
# add a "content disposition" header for "attachments"
|
# add a "content disposition" header for "attachments"
|
||||||
options[:content_disposition] = "attachment; filename=\"#{filename}\"" if filename && !FileHelper.is_image?(filename)
|
options[:content_disposition] = "attachment; filename=\"#{filename}\"" unless FileHelper.is_image?(filename)
|
||||||
# add a "content type" header when provided
|
|
||||||
options[:content_type] = content_type if content_type
|
|
||||||
# if this fails, it will throw an exception
|
# if this fails, it will throw an exception
|
||||||
path = @s3_helper.upload(file, path, options)
|
path = @s3_helper.upload(file, path, options)
|
||||||
# return the upload url
|
# return the upload url
|
||||||
|
|
Loading…
Reference in New Issue