Skip to content

Commit 8762c34

Browse files
Ignacio Tartavulltseaver
authored andcommitted
Add header enabling gzip downloads (googleapis#3380)
1 parent c171fdc commit 8762c34

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

storage/google/cloud/storage/blob.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -482,8 +482,9 @@ def download_to_file(self, file_obj, client=None):
482482
"""
483483
download_url = self._get_download_url()
484484
headers = _get_encryption_headers(self._encryption_key)
485-
transport = self._get_transport(client)
485+
headers['accept-encoding'] = 'gzip'
486486

487+
transport = self._get_transport(client)
487488
try:
488489
self._do_download(transport, file_obj, download_url, headers)
489490
except resumable_media.InvalidResponse as exc:

storage/tests/unit/test_blob.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,7 @@ def _check_session_mocks(self, client, transport,
472472
# **MUTABLE** headers and it was mutated before the
473473
# second request.
474474
headers['range'] = 'bytes=3-5'
475+
headers['accept-encoding'] = 'gzip'
475476
call = mock.call(
476477
'GET', expected_url, data=None, headers=headers)
477478
self.assertEqual(transport.request.mock_calls, [call, call])
@@ -557,7 +558,8 @@ def test_download_to_file_with_failure(self):
557558
self.assertEqual(file_obj.tell(), 0)
558559
# Check that the transport was called once.
559560
transport.request.assert_called_once_with(
560-
'GET', blob.media_link, data=None, headers={}, stream=True)
561+
'GET', blob.media_link, data=None,
562+
headers={'accept-encoding': 'gzip'}, stream=True)
561563

562564
def test_download_to_file_wo_media_link(self):
563565
blob_name = 'blob-name'
@@ -612,7 +614,8 @@ def _download_to_file_helper(self, use_chunks=False):
612614
self._check_session_mocks(client, transport, media_link)
613615
else:
614616
transport.request.assert_called_once_with(
615-
'GET', media_link, data=None, headers={}, stream=True)
617+
'GET', media_link, data=None,
618+
headers={'accept-encoding': 'gzip'}, stream=True)
616619

617620
def test_download_to_file_default(self):
618621
self._download_to_file_helper()
@@ -677,7 +680,8 @@ def test_download_to_filename_w_key(self):
677680
'updated': '2014-12-06T13:13:50.690Z'}
678681
key = b'aa426195405adee2c8081bb9e7e74b19'
679682
blob = self._make_one(
680-
blob_name, bucket=bucket, properties=properties, encryption_key=key)
683+
blob_name, bucket=bucket, properties=properties,
684+
encryption_key=key)
681685
# Modify the blob so there there will be 2 chunks of size 3.
682686
blob._CHUNK_SIZE_MULTIPLE = 1
683687
blob.chunk_size = 3
@@ -698,6 +702,7 @@ def test_download_to_filename_w_key(self):
698702
'X-Goog-Encryption-Key-Sha256': header_key_hash_value,
699703
'X-Goog-Encryption-Algorithm': 'AES256',
700704
'X-Goog-Encryption-Key': header_key_value,
705+
'accept-encoding': 'gzip',
701706
}
702707
self._check_session_mocks(
703708
client, transport, media_link, headers=key_headers)
@@ -1522,8 +1527,8 @@ def test_set_iam_policy(self):
15221527
self.assertEqual(len(sent['bindings']), len(BINDINGS))
15231528
key = operator.itemgetter('role')
15241529
for found, expected in zip(
1525-
sorted(sent['bindings'], key=key),
1526-
sorted(BINDINGS, key=key)):
1530+
sorted(sent['bindings'], key=key),
1531+
sorted(BINDINGS, key=key)):
15271532
self.assertEqual(found['role'], expected['role'])
15281533
self.assertEqual(
15291534
sorted(found['members']), sorted(expected['members']))

0 commit comments

Comments
 (0)