File tree Expand file tree Collapse file tree
file_automation/remote/google_drive
tests/unit_test/remote/google_drive Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -14,10 +14,30 @@ def download_file(file_id: str, file_name: str):
1414 done = False
1515 while done is False :
1616 status , done = downloader .next_chunk ()
17- print (F' Download { int (status .progress () * 100 )} .' )
17+ print (f" Download { file_name } { int (status .progress () * 100 )} %." )
1818 except HttpError as error :
1919 print (f"An error occurred: { error } " )
2020 return None
2121 with open (file_name , "wb" ) as output_file :
2222 output_file .write (file .getbuffer ())
2323 return file
24+
25+
26+ def download_file_from_folder (folder_name : str ):
27+ try :
28+ files = dict ()
29+ response = driver_instance .service .files ().list (
30+ q = f"mimeType = 'application/vnd.google-apps.folder' and name = '{ folder_name } '"
31+ ).execute ()
32+ folder = response .get ("files" , [])[0 ]
33+ folder_id = folder .get ("id" )
34+ response = driver_instance .service .files ().list (
35+ q = f"'{ folder_id } ' in parents"
36+ ).execute ()
37+ for file in response .get ("files" , []):
38+ download_file (file .get ("id" ), file .get ("name" ))
39+ files .update ({file .get ("name" ): file .get ("id" )})
40+ return files
41+ except HttpError as error :
42+ print (f"An error occurred: { error } " )
43+ return None
Original file line number Diff line number Diff line change 88
99def upload_to_drive (file_name : str , file_path : str ):
1010 try :
11- if Path (file_path ).is_file ():
11+ if Path (file_path ).exists ():
1212 file_metadata = {
1313 "name" : file_name ,
1414 "mimeType" : "*/*"
@@ -28,3 +28,28 @@ def upload_to_drive(file_name: str, file_path: str):
2828 except HttpError as error :
2929 print (f"An error occurred: { error } " )
3030 return None
31+
32+
33+ def upload_to_dir (folder_id : str , file_name : str , file_path : str ):
34+ try :
35+ if Path (file_path ).exists ():
36+ file_metadata = {
37+ "name" : file_name ,
38+ "mimeType" : "*/*" ,
39+ "parents" : [f"{ folder_id } " ]
40+ }
41+ media = MediaFileUpload (
42+ file_path ,
43+ mimetype = "*/*" ,
44+ resumable = True
45+ )
46+ file_id = driver_instance .service .files ().create (
47+ body = file_metadata ,
48+ media_body = media ,
49+ fields = "id"
50+ ).execute ()
51+ return file_id
52+ return False
53+ except HttpError as error :
54+ print (f"An error occurred: { error } " )
55+ return None
Original file line number Diff line number Diff line change 1+ from file_automation .remote .google_drive .download .download_file import download_file_from_folder
12from file_automation .remote .google_drive .search .search_drive import search_all_file
2- from file_automation .remote .google_drive .share .share_file import share_file_to_anyone
33
44print (search_all_file ())
5- print (share_file_to_anyone ( "1PlUh-iBEQF4n-0Ew0FfabVuoDZbuFpxc " ))
5+ print (download_file_from_folder ( "new_folder " ))
You can’t perform that action at this time.
0 commit comments