前提・実現したいこと
ここに質問の内容を詳しく書いてください。
google driveにある全ファイルをダウンロードしたいです。
driveは一般の@gmail.comではなく、G Suiteアカウントで、グループ外のアクセスはできないです。
python@hogehoge.gserviceaccount.comを編集者に追加できないのでそれが原因かもしれないです。
file_listが空で出力される. 一応認証はうまくいっているようないっていないような Authentication successful. 初回のみ上記の表示が出てます。
python
settings.yaml
1settings.yaml 2 3client_config_backend: settings 4client_config: 5 client_id: 'hogehoge' 6 client_secret: 'hogehoge' 7 8save_credentials: True 9save_credentials_backend: file 10save_credentials_file: credentials.json 11 12get_refresh_token: True 13 14oauth_scope: 15 - https://www.googleapis.com/auth/drive.file 16 - https://www.googleapis.com/auth/drive.install 17
python
1import os 2from pydrive.auth import GoogleAuth 3from pydrive.drive import GoogleDrive 4 5gauth = GoogleAuth() 6gauth.LocalWebserverAuth() 7drive = GoogleDrive(gauth) 8 9drive_folder_id = 'hogehoge' 10save_folder = './hogehoge' 11 12 13def download_recursively(save_folder, drive_folder_id): 14 # 保存先フォルダがなければ作成 15 if not os.path.exists(save_folder): 16 os.makedirs(save_folder) 17 18 file_list = drive.ListFile({'q': '"{}" in parents and trashed = false'.format(drive_folder_id)}).GetList() 19 20 for file in file_list: 21 # mimeTypeでフォルダか判別 22 if file['mimeType'] == 'application/vnd.google-apps.folder': 23 download_recursively(os.path.join(save_folder, file['title']), file['id']) 24 else: 25 file.GetContentFile(os.path.join(save_folder, file['title'])) 26 27 28download_recursively(save_folder, drive_folder_id)
補足情報(FW/ツールのバージョンなど)
https://qiita.com/i8b4/items/322dc8d81427717a86e4
を参考にしています。
あなたの回答
tips
プレビュー