最初に
RaspberryPIで定点カメラを作ったので備忘録 第一弾です。
動画も作成したのでよろしく!

分かること
- google cloud storageのアップロード方法
作成
用意するもの
- GoogleCloudPlatformのアカウント
手順
1.GoogleCloudPlatform関連
GoogleCloudPlatform(GoogleCloudStorage)って?
基本的には下記のようなサービスです。
Googleが提供するクラウドにある巨大なフォルダのようなもので、ファイルを書き込んだり 読み込んだりが簡単に出来るサービスです。
価格は無料分もありますが、読み込み・書き込み・存在するデータサイズで課金されていきます。
Cloud側設定
GoogleCloudPlatformにログインしていただき、横のStorage>ブラウザをクリックします。

こんな感じでバケットを作成します。
バケット名は自由でいいです。



作成が完了したら、アクセスするサービスアカウントを作成します。
左のメニューからIAMと管理>サービスアカウントをクリックします。

サービスアカウントの権限ではCloud Storageの権限を付与します。
ロールではCloud Storage>ストレージの管理者としておいてください

JSONタイプを選択した状態で作成をクリックするとダウンロードできます。
このファイルは後で利用するので大切に保管しておいてください。
また、この情報が公になると大量の請求が来たりするのでご注意ください。

ローカル側で確認
Pythonの環境を構築していきます。
今回、python3を利用するため、下記のコマンドで環境を入れます。
sudo apt install python3 python3-pip
インストールが完了したら、Cloud Storageにアクセスするため、google-cloud-storageというpythonのモジュールをインストールします。
pip3 install google-cloud-storage
そして、テスト用のコードを作成します。
下記のコードをnanoなどで作成してください。
# nano で作る場合
nano file2gs.py
※バケット名の部分は自分のバケット名を入れてください。
# /home/pi/image.jpgをアップロードするお試しコード
from google.cloud import storage
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="/home/pi/gkey.json"
client = storage.Client()
bucket = client.get_bucket('{バケット名}')
blob2 = bucket.blob('test.txt')
blob2.upload_from_filename(filename='/home/pi/test.txt')
実行する前に先程ダウンロードしたjsonファイルを開いてコピーしてgkey.jsonというファイルに書き込みます。
# nano で作る場合
nano gkey.json
開いたファイルに内容をコピーしてください。
また、アップロードするファイルも作成しておきます。
echo "hi. this is text file">test.txt
この状態で、下記のコマンドを入力し、実行します。
python3 file2gs.py
下のリンクをクリックすれば内容も確認できます。
デフォルトでは世界には公開されないのでご安心を…

これで、クラウドにデータをアップロードすることができました。



