We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hi. I am trying to upload a image to google drive that is in bytes format. However, I get the following error:
UnicodeDecodeError Traceback (most recent call last) g:\My Drive\xFiles\Work\ReMedia\KID\MIO52\Python\workspace.ipynb Cell 19 in <cell line: 6>() 3 credentials = Credentials.from_authorized_user_info(info={"client_id": GOOGLE_CLIENT_ID, "client_secret": GOOGLE_CLIENT_SECRET, "refresh_token": GOOGLE_REFRESH_TOKEN}) 4 service = googleapiclient.discovery.build('drive', 'v3', credentials=credentials) ----> 6 media = MediaFileUpload(screenshot,mimetype='image/png',) 7 file_metadata = {'name': f'{adid}.png', 'parents': [drive_folder_id]} 10 try:
File c:\Users\andri\Pythonenvs\googleapi\lib\site-packages\googleapiclient_helpers.py:131, in positional..positional_decorator..positional_wrapper(*args, **kwargs) 129 elif positional_parameters_enforcement == POSITIONAL_WARNING: 130 logger.warning(message) --> 131 return wrapped(*args, **kwargs)
File c:\Users\andri\Pythonenvs\googleapi\lib\site-packages\googleapiclient\http.py:593, in MediaFileUpload.init(self, filename, mimetype, chunksize, resumable) 591 self._fd = None 592 self._filename = filename --> 593 self._fd = open(self._filename, "rb") 594 if mimetype is None: 595 # No mimetype provided, make a guess. 596 mimetype, _ = mimetypes.guess_type(filename)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte
Using the following code:
The code:
credentials = Credentials.from_authorized_user_info(info={"client_id": GOOGLE_CLIENT_ID, "client_secret": GOOGLE_CLIENT_SECRET, "refresh_token": GOOGLE_REFRESH_TOKEN}) service = googleapiclient.discovery.build('drive', 'v3', credentials=credentials)
media = MediaFileUpload(screenshot,mimetype='image/png',) file_metadata = {'name': f'{adid}.png', 'parents': [drive_folder_id]}
try: file = service.files().create(body=file_metadata, media_body=media, fields='id').execute() print(f'File ID: {file.get("id")} uploaded successfully to folder ID: {drive_folder_id}') except HttpError as error: print(f'An error occurred: {error}') file = None
If I change to io.BytesIO(screenshot) I get the error:
TypeError Traceback (most recent call last) g:\My Drive\xFiles\Work\ReMedia\KID\MIO52\Python\workspace.ipynb Cell 19 in <cell line: 6>() 3 credentials = Credentials.from_authorized_user_info(info={"client_id": GOOGLE_CLIENT_ID, "client_secret": GOOGLE_CLIENT_SECRET, "refresh_token": GOOGLE_REFRESH_TOKEN}) 4 service = googleapiclient.discovery.build('drive', 'v3', credentials=credentials) ----> 6 media = MediaFileUpload(BytesIO(screenshot),mimetype='image/png',) 7 file_metadata = {'name': f'{adid}.png', 'parents': [drive_folder_id]} 10 try:
TypeError: expected str, bytes or os.PathLike object, not BytesIO
Any suggestions>?
3.10
The text was updated successfully, but these errors were encountered:
sqrrrl
No branches or pull requests
Summary
Hi. I am trying to upload a image to google drive that is in bytes format. However, I get the following error:
UnicodeDecodeError Traceback (most recent call last)
g:\My Drive\xFiles\Work\ReMedia\KID\MIO52\Python\workspace.ipynb Cell 19 in <cell line: 6>()
3 credentials = Credentials.from_authorized_user_info(info={"client_id": GOOGLE_CLIENT_ID, "client_secret": GOOGLE_CLIENT_SECRET, "refresh_token": GOOGLE_REFRESH_TOKEN})
4 service = googleapiclient.discovery.build('drive', 'v3', credentials=credentials)
----> 6 media = MediaFileUpload(screenshot,mimetype='image/png',)
7 file_metadata = {'name': f'{adid}.png', 'parents': [drive_folder_id]}
10 try:
File c:\Users\andri\Pythonenvs\googleapi\lib\site-packages\googleapiclient_helpers.py:131, in positional..positional_decorator..positional_wrapper(*args, **kwargs)
129 elif positional_parameters_enforcement == POSITIONAL_WARNING:
130 logger.warning(message)
--> 131 return wrapped(*args, **kwargs)
File c:\Users\andri\Pythonenvs\googleapi\lib\site-packages\googleapiclient\http.py:593, in MediaFileUpload.init(self, filename, mimetype, chunksize, resumable)
591 self._fd = None
592 self._filename = filename
--> 593 self._fd = open(self._filename, "rb")
594 if mimetype is None:
595 # No mimetype provided, make a guess.
596 mimetype, _ = mimetypes.guess_type(filename)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte
Using the following code:
The code:
Upload file to Google Drive
credentials = Credentials.from_authorized_user_info(info={"client_id": GOOGLE_CLIENT_ID, "client_secret": GOOGLE_CLIENT_SECRET, "refresh_token": GOOGLE_REFRESH_TOKEN})
service = googleapiclient.discovery.build('drive', 'v3', credentials=credentials)
media = MediaFileUpload(screenshot,mimetype='image/png',)
file_metadata = {'name': f'{adid}.png', 'parents': [drive_folder_id]}
try:
file = service.files().create(body=file_metadata, media_body=media, fields='id').execute()
print(f'File ID: {file.get("id")} uploaded successfully to folder ID: {drive_folder_id}')
except HttpError as error:
print(f'An error occurred: {error}')
file = None
NOTE: sceenshot is in bytes format
If I change to io.BytesIO(screenshot) I get the error:
TypeError Traceback (most recent call last)
g:\My Drive\xFiles\Work\ReMedia\KID\MIO52\Python\workspace.ipynb Cell 19 in <cell line: 6>()
3 credentials = Credentials.from_authorized_user_info(info={"client_id": GOOGLE_CLIENT_ID, "client_secret": GOOGLE_CLIENT_SECRET, "refresh_token": GOOGLE_REFRESH_TOKEN})
4 service = googleapiclient.discovery.build('drive', 'v3', credentials=credentials)
----> 6 media = MediaFileUpload(BytesIO(screenshot),mimetype='image/png',)
7 file_metadata = {'name': f'{adid}.png', 'parents': [drive_folder_id]}
10 try:
File c:\Users\andri\Pythonenvs\googleapi\lib\site-packages\googleapiclient_helpers.py:131, in positional..positional_decorator..positional_wrapper(*args, **kwargs)
129 elif positional_parameters_enforcement == POSITIONAL_WARNING:
130 logger.warning(message)
--> 131 return wrapped(*args, **kwargs)
File c:\Users\andri\Pythonenvs\googleapi\lib\site-packages\googleapiclient\http.py:593, in MediaFileUpload.init(self, filename, mimetype, chunksize, resumable)
591 self._fd = None
592 self._filename = filename
--> 593 self._fd = open(self._filename, "rb")
594 if mimetype is None:
595 # No mimetype provided, make a guess.
596 mimetype, _ = mimetypes.guess_type(filename)
TypeError: expected str, bytes or os.PathLike object, not BytesIO
Any suggestions>?
Specifications
3.10
)The text was updated successfully, but these errors were encountered: