3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Google Drive REST APIを使ってみる

Last updated at Posted at 2017-12-22

ファイルアップロード編
最初はRubyで頑張ろうとしたのですが、ライブラリがα版で開発が止まっていたため(メンテナンスは継続されるらしいですが)、Pythonに切り替えて実装しています。

最初に認証を済ませるところまではクイックスタートの手順を参考にしてください。

vagrant環境で実施したため、ブラウザなしで認証を済ませるため、以下のオプションが必要だった以外は上記の手順通りに進むことができました。

python3 quickstart.py --noauth_local_webserver

quickstart.py のとおりだと新しいファイルを10件表示して終わりです。今回は、「Driveのpicturesというディレクトリにローカルのpicsフォルダにあるfoo.jpgという画像をアップロードする」機能を実装してみました。ディレクトリが存在しない場合は、作成します。

items = service.files().list(q="name = 'pictures'").execute().get('files')
if len(items) == 0:
    body = {'name': 'pictures','mimeType': "application/vnd.google-apps.folder"}
    fid = service.files().create(body=body).execute().get('id')
else:
    fid = items[0]['id']
body = { 'name':'foo.jpg', 'parents':[fid] }
service.files().create(media_body='pics/foo.jpg', body=body).execute()

ファイルもディレクトリも実体は名前(name)と異なるIDで管理されていることに注意が必要です。このサンプルを2回実行すると、foo.jpgというファイルが2つ生成されます。上書きもしくは書き込みをスキップしたい場合は、同名のファイルが既に存在しないかどうかチェックが必要です。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?