Skip to content

Commit

Permalink
global: better mimetype propagation
Browse files Browse the repository at this point in the history
Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
  • Loading branch information
jirikuncar committed May 20, 2016
1 parent 1a0e59a commit 22f17f6
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 3 deletions.
2 changes: 2 additions & 0 deletions invenio_files_rest/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ def send_stream(stream, filename, size, mtime, mimetype=None, restricted=False,
headers = Headers()
if as_attachment:
headers.add('Content-Disposition', 'attachment', filename=filename)
else:
headers.add('Content-Disposition', 'inline')
headers['Content-Length'] = size
headers['Content-MD5'] = content_md5

Expand Down
4 changes: 2 additions & 2 deletions invenio_files_rest/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -493,11 +493,11 @@ def copy_contents(self, fileinstance, progress_callback=None, **kwargs):
*self.storage(**kwargs).copy(
fileinstance, progress_callback=progress_callback))

def send_file(self, **kwargs):
def send_file(self, mimetype=None, **kwargs):
"""Send file to client."""
if not self.readable:
raise ValueError('File instance is not readable.')
return self.storage(**kwargs).send_file()
return self.storage(**kwargs).send_file(mimetype=mimetype)

def set_uri(self, uri, size, checksum, readable=True, writable=False,
storage_class=None):
Expand Down
5 changes: 4 additions & 1 deletion invenio_files_rest/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@

from __future__ import absolute_import, print_function

import mimetypes

from flask import Blueprint, abort, current_app, request, url_for
from flask_login import current_user
from invenio_db import db
Expand Down Expand Up @@ -471,7 +473,8 @@ def send_object(cls, bucket_id, key, version_id=None, expected_chksum=None,
current_app.logger.warning(
'File checksum mismatch detected.', extra=logger_data)

return obj.file.send_file(mimetype=obj.mimetype)
mimetype = obj.mimetype or mimetypes.guess_type(obj.key)[0]
return obj.file.send_file(mimetype=mimetype)

@use_kwargs(get_args)
def get(self, bucket_id, key, version_id=None, **kwargs):
Expand Down

0 comments on commit 22f17f6

Please sign in to comment.