Open local image files with "rb" mode

When using "file" in allowed_direct_url_schemes,
open image files w/ binary mode.

Closes-Bug: #1923313
Change-Id: I52b87d03c49db74002f09cfeea86bc0ac7ce8a42
This commit is contained in:
Eric Harney 2021-04-12 09:24:47 -04:00
parent 355681cd53
commit 5d7e7547f0
2 changed files with 2 additions and 1 deletions

View File

@ -365,7 +365,7 @@ class GlanceImageService(object):
# a system call to cp could have significant performance
# advantages, however we do not have the path to files at
# this point in the abstraction.
with open(parsed_url.path, "r") as f:
with open(parsed_url.path, "rb") as f:
shutil.copyfileobj(f, data)
return

View File

@ -830,6 +830,7 @@ class TestGlanceImageService(test.TestCase):
self.flags(allowed_direct_url_schemes=['file'])
self.service.download(self.context, image_id, writer)
mock_copyfileobj.assert_called_once_with(mock.ANY, writer)
mock_open.assert_called_once_with('/tmp/test', 'rb')
@mock.patch('six.moves.builtins.open')
@mock.patch('shutil.copyfileobj')