llm_tutorial / upload.py
koichi12's picture
Add files using upload-large-folder tool
738db08 verified
raw
history blame
1.85 kB
import os
from pydrive2.auth import GoogleAuth
from pydrive2.drive import GoogleDrive
class GoogleDriveFacade:
def __init__(self, setting_path: str='settings.yaml'):
gauth = GoogleAuth(setting_path)
gauth.LocalWebserverAuth()
self.drive = GoogleDrive(gauth)
def create_folder(self, folder_name):
ret = self.check_files(folder_name)
if ret:
folder = ret
print(f"{folder['title']}: exists")
else:
folder = self.drive.CreateFile(
{
'title': folder_name,
'mimeType': 'application/vnd.google-apps.folder'
}
)
folder.Upload()
return folder
def check_files(self, folder_name,):
query = f'title = "{os.path.basename(folder_name)}"'
list = self.drive.ListFile({'q': query}).GetList()
if len(list)> 0:
return list[0]
return False
def upload(self,
local_file_path: str,
save_folder_name: str = 'sample',
is_convert : bool=True,
):
if save_folder_name:
folder = self.create_folder(save_folder_name)
file = self.drive.CreateFile(
{
'title':os.path.basename(local_file_path),
'parents': [
{'id': folder["id"]}
]
}
)
file.SetContentFile(local_file_path)
file.Upload({'convert': is_convert})
drive_url = f"https://drive.google.com/uc?id={str( file['id'] )}"
return drive_url
if __name__ == "__main__":
g = GoogleDriveFacade()
g.upload(
local_file_path='hoge.txt',
save_folder_name="test",
is_convert=True,
)