この記事で扱っていること
- Google Cloudにファイルをアップロードする方法
を紹介しています。
注意:すべてのエラーを確認しているわけではないので、記事の内容を実装する際には自己責任でお願いします。また、エラー配線は適当な部分があるので適宜修正してください。
プログラムで取得したデータを保存したり、何かレポートを作成したりで生成したファイルの扱いについて、ローカルPCに保存しておくだけではなく、どこか別の場所に保存しておくということがあると思います。
そのような例として、Googleのクラウド、Google Cloudにアップロードする際の手順について調べてみました。
こういったネットワーク絡みの処理はLabVIEW単体でやるよりも、関連する情報が見つかりやすいPythonでの実装がラクなので、Pythonスクリプトを呼び出すようにしています。
Pythonスクリプトの呼び出しについて基本的なことは本記事では紹介していないので、経験がない方は以下の記事を参考にしてもらえればと思います。
どんな結果になるか
機能を見せるだけのシンプルな構成にするために、フロントパネルにはアップロードする対象のファイルを選ぶファイルパス制御器と、成功時にどこにアップロードされたかがわかるように結果を表示する文字列表示器を配置しています。

ファイルは今回は単純にテキストファイルをアップロードすることを考えますが、htmlファイルやcsvファイルであってもアップロードすることができます。

プログラムの構造
Google Cloudへのアップロードは、Pythonでの実装が簡単なので、Pythonノードを使用しています。

二つのサブVIが使われていますが、これらはクラウドへのアップロードに必要なjsonファイルのパスを指定しているサブVIです。
jsonファイルの配置場所は、上記のVIと同じ階層に作ったrequired_filesフォルダの中にしていますが、別にこの通りである必要はないと思います。
わざわざサブVIにする必要があるのか?ですが、記事後半で紹介するもう一つ別のVIでも同じパスを指定することになるので、使いまわすためにサブVI化しています。

呼び出すPythonスクリプト、upload_file.pyは以下のようにしています。
後述する、Google Cloud側のセットアップで得られるJSONファイルを指定する必要があるので、Pythonスクリプト中で定義している関数はファイルパスを受け付ける構造としています。

Google Cloudのセットアップ
上記のアプリケーションを動かすには、あらかじめGoogle Cloud側のセットアップが必要になります。
以下では、全く初めてGoogle Cloudの設定を始めるという前提で進めていきます。
Googleのサービスを使うのでGoogleのアカウントは持っている前提とします。
既に使用し始めている、という方の場合は、適宜途中のステップから参考にして頂ければと思います。
まずは、https://cloud.google.comにアクセスします。
アクセスしたら右上のコンソールを選択します。

ホーム画面で、無料トライアルを試す、を選択します。

必要な登録情報を入力していきます。

支払いが発生する場合の引き落としのクレカ情報を入力する部分もありますが、無料トライアルの場合には特に支払いは発生しません。
(ここで紹介している方法は無料トライアルなので支払いが発生することはないようですが、クレカの登録自体は必要となります)

アカウントを作ったら、右側のカテゴリ欄で「APIとサービス」を選び、その中にある「ライブラリ」を選択します。

そこでGoogle Drive APIを選んで開きます。

認証情報を選択して、認証情報の作成に入ります。

認証情報として、アプリの名前(LabVIEWなとど入れる必要はなく任意の名前です。今回はmydemoapplicationなどとしています)、ユーザーサポートメール(自分のgmailアドレス)を入力して次に進みます。

対象を選ぶ画面では、「外部」を選択します。

連絡先情報も、先ほどのユーザーサポートメールと同じアドレスを入れておきます。

全て終わったら、「作成」で完了します。

その後、OAuthクライアントの作成に移ります。

OAuthクライアントの作成画面にて、アプリケーションの種類を選びますがここはデスクトップアプリを選択しています。

作成すると、クライアントIDやクライアントシークレットの情報が表示された画面が表れ、ここからJSONファイルを入手できます。

このJSONファイルをclient_secrete_fileとしてPythonの方で使用していきます。
なお、upload_file.pyのPythonスクリプトでは、token_fileも使用しており、これも必要になります。
これについては、以下の別のPythonスクリプトで作成できます(auth_init.py)。
中で定義しているauthenticate関数には上記で入手したclient_secret_fileのパスと、生成するtoken_fileのパスを指定します。

もしこのtokenファイル作成もLabVIEWから行う場合には以下のようなプログラムとします。

使っている二つのサブVIは、既に説明したものです。
このtokenファイル作成のプログラムを実行してもtokenファイルが作成されない場合、LabVIEW以外からPythonスクリプトを実行してみて下さい。
例えば以下はVisual Studio Codeで実行した場合ですが、もしSSLCertVerificationErrorなるものが出ていた場合、ネットワークのセキュリティ問題に引っかかっている可能性がありそうです。
この場合、別のネットワークにつながないと解消できない可能性があります。(例えば会社のネットワークを使用していてセキュリティが厳しい場合など。どのように解消すればいいかは・・・IT部門等に確認されるのがベストかなと思います)

プログラムからすぐにアップロード状態を確認したい場合
上記のPythonスクリプトでは、結果文字列にアップロード先のURLが含まれるようにしています。
LabVIEW側でこの文字列を受け取って、デフォルトブラウザで開くようにすれば、LabVIEWからすぐにこの内容を確認することができます。
そのためには、結果文字列からURLの部分だけを抜き出して、デフォルトブラウザでURLを開くの関数を使用していきます。
下記は簡単な実装例ですが、このような処理を行うサブVIを仕込めば、いつでも見たいときにファイルの中身をブラウザ上で確認できます。

本記事では、Google Cloudにファイルをアップロードする方法を紹介しました。
LabVIEWだけで構成したプログラムでも同等なことが実現できるかもしれませんが、Pythonでこの手の処理を行うといった情報の方が見つけやすいので、プログラムの処理の一部をこうしたLabVIEW以外の言語で担う、という例として参考になればうれしいです。
ここまで読んでいただきありがとうございました。
コメント