Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

46 changes: 38 additions & 8 deletions file_automation/remote/google_drive/upload/upload_to_driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@
from file_automation.remote.google_drive.driver_instance import driver_instance


def upload_to_drive(file_name: str, file_path: str):
def upload_to_drive(file_path: str, file_name: str = None):
try:
if Path(file_path).exists():
file_path = Path(file_path)
if file_path.is_file():
file_metadata = {
"name": file_name,
"name": file_path.name if file_name is None else file_name,
"mimeType": "*/*"
}
media = MediaFileUpload(
Expand All @@ -24,17 +25,19 @@ def upload_to_drive(file_name: str, file_path: str):
fields="id"
).execute()
return file_id
return False
else:
raise FileNotFoundError
except HttpError as error:
print(f"An error occurred: {error}")
return None


def upload_to_dir(folder_id: str, file_name: str, file_path: str):
def upload_to_folder(folder_id: str, file_path: str, file_name: str = None):
try:
if Path(file_path).exists():
file_path = Path(file_path)
if file_path.is_file():
file_metadata = {
"name": file_name,
"name": file_path.name if file_name is None else file_name,
"mimeType": "*/*",
"parents": [f"{folder_id}"]
}
Expand All @@ -49,7 +52,34 @@ def upload_to_dir(folder_id: str, file_name: str, file_path: str):
fields="id"
).execute()
return file_id
return False
else:
raise FileNotFoundError
except HttpError as error:
print(f"An error occurred: {error}")
return None


def upload_dir_to_drive(dir_path: str):
dir_path = Path(dir_path)
ids = list()
if dir_path.is_dir():
path_list = dir_path.iterdir()
for path in path_list:
if path.is_file():
ids.append(upload_to_drive(str(path.absolute()), path.name))
return ids
else:
raise FileNotFoundError


def upload_dir_to_folder(folder_id: str, dir_path: str):
dir_path = Path(dir_path)
ids = list()
if dir_path.is_dir():
path_list = dir_path.iterdir()
for path in path_list:
if path.is_file():
ids.append(upload_to_folder(folder_id, str(path.absolute()), path.name))
return ids
else:
raise FileNotFoundError
4 changes: 2 additions & 2 deletions tests/unit_test/remote/google_drive/quick_test.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from file_automation.remote.google_drive.download.download_file import download_file_from_folder
from file_automation.remote.google_drive.search.search_drive import search_all_file
from file_automation.remote.google_drive.upload.upload_to_driver import upload_dir_to_folder

print(search_all_file())
print(download_file_from_folder("new_folder"))
print(upload_dir_to_folder(r"1J-m5cHqkXumaHqlHfL90BySEqWsG9zbP", r"C:\Users\JeffreyChen\Desktop\Paper"))