From 30630c46fca9732eb92128e15292ee348b04ba77 Mon Sep 17 00:00:00 2001 From: Joey Payne Date: Wed, 25 May 2016 14:18:08 -0600 Subject: [PATCH] Only encode to 'utf-8' if needed --- drivepy/files.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/drivepy/files.py b/drivepy/files.py index bfb39c0..acd93fb 100644 --- a/drivepy/files.py +++ b/drivepy/files.py @@ -49,16 +49,20 @@ class GoogleFile(object): if guess is not None: body['mimeType'] = guess - params = {} + create_params = {} if content: - cont = io.BytesIO(content.encode('utf-8')) + try: + utf_content = content.encode('utf-8') + except UnicodeDecodeError: + pass + cont = io.BytesIO(utf_content) media_body = MediaIoBaseUpload(cont, body['mimeType'], resumable=True) - params['media_body'] = media_body + create_params['media_body'] = media_body - meta_data = service.files().create(body=body, fields=fields, **params).execute() + meta_data = service.files().create(body=body, fields=fields, **create_params).execute() google_file = GoogleFile(service, meta_data) google_file.content = content @@ -213,7 +217,11 @@ class GoogleFile(object): params = {} if content: - cont = io.BytesIO(content.encode('utf-8')) + try: + utf_content = content.encode('utf-8') + except UnicodeDecodeError: + pass + cont = io.BytesIO(utf_content) media_body = MediaIoBaseUpload(cont, self.meta_data['mimeType'], resumable=True)