| from pydrive.auth import GoogleAuth | |
| from pydrive.drive import GoogleDrive | |
| from google.colab import auth | |
| from oauth2client.client import GoogleCredentials | |
| import os | |
| class GoogleDrive_Dowonloader(object): | |
| def __init__(self, use_pydrive): | |
| self.use_pydrive = use_pydrive | |
| if self.use_pydrive: | |
| self.authenticate() | |
| def authenticate(self): | |
| auth.authenticate_user() | |
| gauth = GoogleAuth() | |
| gauth.credentials = GoogleCredentials.get_application_default() | |
| self.drive = GoogleDrive(gauth) | |
| def ensure_file_exists(self, file_id, file_dst): | |
| if not os.path.isfile(file_dst): | |
| if self.use_pydrive: | |
| print(f'Downloading {file_dst} ...') | |
| downloaded = self.drive.CreateFile({'id':file_id}) | |
| downloaded.FetchMetadata(fetch_all=True) | |
| downloaded.GetContentFile(file_dst) | |
| print('Finished') | |
| else: | |
| from gdown import download as drive_download | |
| drive_download(f'https://drive.google.com/uc?id={file_id}', file_dst, quiet=False) | |
| else: | |
| print(f'{file_dst} exists.') | |