Google Drive API を使用して、cronjob を使用していくつかのバックアップを保存したいと考えています。サービス アカウントを使用して PyDrive を使用する方法がわかりません。サービス アカウント ファイルを生成し、それをスクリプトとしてディレクトリに配置すると、client_secret.json
.
このコードを使用:
#!/usr/bin/env python
# -*- coding: utf8 -*-
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
def main():
gauth = GoogleAuth()
drive = GoogleDrive(gauth)
f = drive.CreateFile({'parent': 'toto'})
f.SetContentFile('test.drive.py')
f.Upload()
if __name__ == '__main__':
main(sys.argv[1:])
結果
pydrive.settings.InvalidConfigError: Invalid client secrets file Invalid file format.
まぁ、いいよ。次に、SO に関する他の投稿を見て、次の 2 つを見つけます。
検証プロセスの自動化
この質問に対する最初の回答のコードは、次を返します。
Traceback (most recent call last):
File "test.drive.py", line 4, in <module>
from oauth2client.client import SignedJwtAssertionCredentials
ImportError: cannot import name SignedJwtAssertionCredentials
そして、これ :
Automating pydrive validation process
これはただ... あまり役に立ちません。
どこから始めればよいですか?私は何をすべきか ?ファイルをアップロードするためだけにpydriveとサービス認証の例を教えてもらえますか?
編集:
さらに調査したpycrypto
結果、上記のインポートエラーを修正するためにインストールする必要があるようです。エラーメッセージに指定されていないため、理由はわかりません。