66from file_automation .remote .google_drive .driver_instance import driver_instance
77
88
9- def upload_to_drive (file_name : str , file_path : str ):
9+ def upload_to_drive (file_path : str , file_name : str = None ):
1010 try :
11- if Path (file_path ).exists ():
11+ file_path = Path (file_path )
12+ if file_path .is_file ():
1213 file_metadata = {
13- "name" : file_name ,
14+ "name" : file_path . name if file_name is None else file_name ,
1415 "mimeType" : "*/*"
1516 }
1617 media = MediaFileUpload (
@@ -24,17 +25,19 @@ def upload_to_drive(file_name: str, file_path: str):
2425 fields = "id"
2526 ).execute ()
2627 return file_id
27- return False
28+ else :
29+ raise FileNotFoundError
2830 except HttpError as error :
2931 print (f"An error occurred: { error } " )
3032 return None
3133
3234
33- def upload_to_dir (folder_id : str , file_name : str , file_path : str ):
35+ def upload_to_folder (folder_id : str , file_path : str , file_name : str = None ):
3436 try :
35- if Path (file_path ).exists ():
37+ file_path = Path (file_path )
38+ if file_path .is_file ():
3639 file_metadata = {
37- "name" : file_name ,
40+ "name" : file_path . name if file_name is None else file_name ,
3841 "mimeType" : "*/*" ,
3942 "parents" : [f"{ folder_id } " ]
4043 }
@@ -49,7 +52,34 @@ def upload_to_dir(folder_id: str, file_name: str, file_path: str):
4952 fields = "id"
5053 ).execute ()
5154 return file_id
52- return False
55+ else :
56+ raise FileNotFoundError
5357 except HttpError as error :
5458 print (f"An error occurred: { error } " )
5559 return None
60+
61+
62+ def upload_dir_to_drive (dir_path : str ):
63+ dir_path = Path (dir_path )
64+ ids = list ()
65+ if dir_path .is_dir ():
66+ path_list = dir_path .iterdir ()
67+ for path in path_list :
68+ if path .is_file ():
69+ ids .append (upload_to_drive (str (path .absolute ()), path .name ))
70+ return ids
71+ else :
72+ raise FileNotFoundError
73+
74+
75+ def upload_dir_to_folder (folder_id : str , dir_path : str ):
76+ dir_path = Path (dir_path )
77+ ids = list ()
78+ if dir_path .is_dir ():
79+ path_list = dir_path .iterdir ()
80+ for path in path_list :
81+ if path .is_file ():
82+ ids .append (upload_to_folder (folder_id , str (path .absolute ()), path .name ))
83+ return ids
84+ else :
85+ raise FileNotFoundError
0 commit comments