in genai-for-marketing/infra/aux_data/Create_GDrive_folder.py [0:0]
def upload_with_conversion(folder_id,source_file,destination_file,file_type):
"""Upload file with conversion
Returns: ID of the file uploaded
"""
creds, _ = google.auth.default()
try:
# create drive api client
service = build("drive", "v3", credentials=creds)
results = service.files().list(q=f"name='{destination_file}'",
pageSize=10, fields="nextPageToken, files(id, name)",
supportsAllDrives=True, includeItemsFromAllDrives=True).execute()
query = "'{}' in parents".format(folder_id)
children = service.files().list(q=query,
fields='nextPageToken, files(id, name)').execute()
#print(children['files'])
fileCheck = next((item for item in children['files'] if item['name'] == destination_file), None)
if len(children['files']) == 0 or fileCheck == None:
file_metadata = {
"name": destination_file,
"mimeType": "application/vnd.google-apps.spreadsheet",
"parents":[folder_id]
}
media = MediaFileUpload(source_file, mimetype=file_type, resumable=True)
# pylint: disable=maybe-no-member
file = (
service.files()
.create(body=file_metadata, media_body=media, fields="id")
.execute()
)
print(f'File with ID: "{file.get("id")}" has been uploaded.')
return file.get("id")
else:
fileData = next((item for item in children['files'] if item['name'] == destination_file), None)
print("File already Exists:",fileData["id"])
return fileData["id"]
except HttpError as error:
print(f"An error occurred: {error}")
file = None