diff --git a/storages/backends/gcloud.py b/storages/backends/gcloud.py index 2aa0e0003..4715326de 100644 --- a/storages/backends/gcloud.py +++ b/storages/backends/gcloud.py @@ -74,8 +74,9 @@ def write(self, content): def close(self): if self._file is not None: if self._is_dirty: - self.blob.upload_from_file(self.file, rewind=True, - content_type=self.mime_type) + self.blob.upload_from_file( + self.file, rewind=True, content_type=self.mime_type, + predefined_acl=self._storage.default_acl) self._file.close() self._file = None @@ -173,14 +174,9 @@ def _save(self, name, content): encoded_name = self._encode_name(name) file = GoogleCloudFile(encoded_name, 'rw', self) file.blob.cache_control = self.cache_control - if self.default_acl: - file.blob.upload_from_file( - content, rewind=True, size=content.size, - content_type=file.mime_type, predefined_acl=self.default_acl) - else: - file.blob.upload_from_file( - content, rewind=True, size=content.size, - content_type=file.mime_type) + file.blob.upload_from_file( + content, rewind=True, size=content.size, + content_type=file.mime_type, predefined_acl=self.default_acl) return cleaned_name def delete(self, name): diff --git a/tests/test_gcloud.py b/tests/test_gcloud.py index 746222ca1..393bacbf6 100644 --- a/tests/test_gcloud.py +++ b/tests/test_gcloud.py @@ -83,6 +83,7 @@ def test_open_write(self, MockBlob): # Simulate the file not existing before the write self.storage._bucket = mock.MagicMock() self.storage._bucket.get_blob.return_value = None + self.storage.default_acl = 'projectPrivate' f = self.storage.open(self.filename, 'wb') MockBlob.assert_called_with(self.filename, self.storage._bucket) @@ -94,7 +95,8 @@ def test_open_write(self, MockBlob): MockBlob().upload_from_file.assert_called_with( tmpfile, rewind=True, - content_type=mimetypes.guess_type(self.filename)[0]) + content_type=mimetypes.guess_type(self.filename)[0], + predefined_acl='projectPrivate') def test_save(self): data = 'This is some test content.' @@ -104,7 +106,8 @@ def test_save(self): self.storage._client.bucket.assert_called_with(self.bucket_name) self.storage._bucket.get_blob().upload_from_file.assert_called_with( - content, rewind=True, size=len(data), content_type=mimetypes.guess_type(self.filename)[0]) + content, rewind=True, size=len(data), content_type=mimetypes.guess_type(self.filename)[0], + predefined_acl=None) def test_save2(self): data = 'This is some test ủⓝï℅ⅆℇ content.' @@ -115,7 +118,8 @@ def test_save2(self): self.storage._client.bucket.assert_called_with(self.bucket_name) self.storage._bucket.get_blob().upload_from_file.assert_called_with( - content, rewind=True, size=len(data), content_type=mimetypes.guess_type(filename)[0]) + content, rewind=True, size=len(data), content_type=mimetypes.guess_type(filename)[0], + predefined_acl=None) def test_save_with_default_acl(self): data = 'This is some test ủⓝï℅ⅆℇ content.'