From 0838802ee0d80ca29d443ecf9cda30083bb40d8a Mon Sep 17 00:00:00 2001 From: Hemang Date: Wed, 19 Jun 2019 18:44:32 +0530 Subject: [PATCH 1/4] remove '/' from the initial of blob name --- storage/google/cloud/storage/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/google/cloud/storage/client.py b/storage/google/cloud/storage/client.py index 7452d7adcd2b..14643e27b3c8 100644 --- a/storage/google/cloud/storage/client.py +++ b/storage/google/cloud/storage/client.py @@ -390,7 +390,7 @@ def download_blob_to_file(self, blob_or_uri, file_obj, start=None, end=None): if scheme != "gs": raise ValueError("URI scheme must be gs") bucket = Bucket(self, name=netloc) - blob_or_uri = Blob(path, bucket) + blob_or_uri = Blob(path[1:], bucket) blob_or_uri.download_to_file(file_obj, client=self, start=start, end=end) From a67ddf021244758dd0aa963f7ce6c2689f86d4dc Mon Sep 17 00:00:00 2001 From: Hemang Date: Fri, 21 Jun 2019 14:55:15 +0530 Subject: [PATCH 2/4] add system test case --- storage/tests/system.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/storage/tests/system.py b/storage/tests/system.py index 0b9127d7afdb..03e23df53ca6 100644 --- a/storage/tests/system.py +++ b/storage/tests/system.py @@ -552,6 +552,21 @@ def test_copy_existing_file(self): copied_contents = new_blob.download_as_string() self.assertEqual(base_contents, copied_contents) + def test_download_blob_w_uri(self): + blob = self.bucket.blob("MyBuffer") + file_contents = b"Hello World" + blob.upload_from_string(file_contents) + self.case_blobs_to_delete.append(blob) + + temp_filename = tempfile.mktemp() + with open(temp_filename, "wb") as file_obj: + Config.CLIENT.download_blob_to_file('gs://'+self.bucket.name+'/MyBuffer', file_obj) + + with open(temp_filename, "rb") as file_obj: + stored_contents = file_obj.read() + + self.assertEqual(file_contents, stored_contents) + class TestUnicode(unittest.TestCase): @unittest.skipIf(RUNNING_IN_VPCSC, "Test is not VPCSC compatible.") @@ -585,7 +600,7 @@ def setUpClass(cls): _empty_bucket(cls.bucket) logo_path = cls.FILES["logo"]["path"] - blob = storage.Blob(cls.FILENAMES[0], bucket=cls.bucket) + blob = storage.Blob(cls.FILENAMESFILENAMES[0], bucket=cls.bucket) blob.upload_from_filename(logo_path) cls.suite_blobs_to_delete = [blob] From 70cc89bccd327e26b7cd9c54fb7e05fdafd2bb5f Mon Sep 17 00:00:00 2001 From: Hemang Date: Tue, 25 Jun 2019 10:41:45 +0530 Subject: [PATCH 3/4] Fix type error --- storage/tests/system.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/tests/system.py b/storage/tests/system.py index 03e23df53ca6..de2f5ffa1afd 100644 --- a/storage/tests/system.py +++ b/storage/tests/system.py @@ -600,7 +600,7 @@ def setUpClass(cls): _empty_bucket(cls.bucket) logo_path = cls.FILES["logo"]["path"] - blob = storage.Blob(cls.FILENAMESFILENAMES[0], bucket=cls.bucket) + blob = storage.Blob(cls.FILENAMES[0], bucket=cls.bucket) blob.upload_from_filename(logo_path) cls.suite_blobs_to_delete = [blob] From 88cd932e93b750f47893f4ac51ae9b524359812b Mon Sep 17 00:00:00 2001 From: Hemang Date: Wed, 26 Jun 2019 11:00:27 +0530 Subject: [PATCH 4/4] changes for success lint test --- storage/tests/system.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/storage/tests/system.py b/storage/tests/system.py index de2f5ffa1afd..6aa68aee0628 100644 --- a/storage/tests/system.py +++ b/storage/tests/system.py @@ -560,7 +560,9 @@ def test_download_blob_w_uri(self): temp_filename = tempfile.mktemp() with open(temp_filename, "wb") as file_obj: - Config.CLIENT.download_blob_to_file('gs://'+self.bucket.name+'/MyBuffer', file_obj) + Config.CLIENT.download_blob_to_file( + "gs://" + self.bucket.name + "/MyBuffer", file_obj + ) with open(temp_filename, "rb") as file_obj: stored_contents = file_obj.read()