Google App EngineよりGoogle Cloud Storageへファイルをアップロード

Google Cloud Storage

Google Cloud Storage (GCS) は、Google Cloud Platform (GCP) におけるオンラインデータストレージです。Amazon Web Services (AWS) で言うところのSimple Cloud Storage Service (S3) にあたります。 GCSの利用方法は非常に簡単で、コンソール画面よりファイルのアップロードを行ったり、設定を変更することが可能です。しかし、いざGoogle App Engine (GAE) などより利用しようとすると一癖あり、なかなか上手くいかないものです。 そこで今回はGAE (Python) よりGCSへのファイルアップロード方法を紹介します。

プロジェクトの設定

GAEより利用するときに、最も忘れがちになるのがライブラリのインポートです。通常利用するライブラリは requirements.txt や app.yaml に記述しますが、今回はプロジェクトにライブラリを直接用意する方法を採ります。pipを利用して、指定ディレクトリにライブラリを配置します。ライブラリは通常「lib」フォルダに配置しますので、tオプションのフォルダはプロジェクトフォルダ配下の「lib」フォルダを指定してください。 またlibフォルダに配置したライブラリを読み込むため、「appengine_config.py」ファイルを用意し、次のソースコードを記述します。

ファイルのアップロード

cloudstorageの関数を利用するため、インポートします。 アップロードは非常に簡単です。たった2行でアップロードできます。 cloudstorage.openメソッドでファイルを用意します。第1引数はGCSのファイルパス(フォルダ名 + ファイル名)、第2引数は書き込みを意味する「w」、第3引数はコンテントタイプをしていします。そしてwriteメソッドで内容を書き込みます。(テストに利用した全ソースコードは末尾に記します) バイナリを用意すれば画像ファイルなども同じ方法でアップロード可能です。

まとめ

Google Cloud Storageへのアップロードと聞くと、面倒な処理が多そうな気がしますが、実は2行のソースコードだけでアップロード可能です。シンプルでわかりやすいですね。設定を忘れないように注意してください。

ソースコード

» お仕事のご依頼はこちら