とまと あんらいぷ…

エンジニアの活動記録とかつぶやきとか

GitHub

【GAS】Google Apps SrriptでGoogle ドライブにファイルをアップロードする

Google Drive(ドライブ)にファイルをアップロードするアップローダーを作ってみた


Google Apps Script、通称 GAS のポテンシャルが高いと言われてる。
実際に使ってみると確かに洗礼された設計が行われてる。

それでもなかなか浸透していない理由は
プログラミングに関して独自の解釈が必要で、
デザインやScriptの作成概念を理解しないとなかなかとっつきにくい。

というわけで練習がてら
Googleドライブへのファイルアップロードをコードで実装してみた。

これまでも未知の言語、例えばPHPを初めて触るときなんかは
アップローダーを実装してきた理由は
アップローダーを作る場合、クライアント側からサーバー側へファイルを送る動作
サーバー側からクライアント側へ結果を返す動作をイヤでも作りこまないとダメだから
理解が深まりやすいと思ってるからです。

というわけでGO

createFileUploadメソッド


クライアント側の実装はなんといってもファイルアップロード
HTMLとしては
<input type = “file”>
を出力しなければいけないので
{Uiインスタンス}.createFileUpload()を使います。
そしてcreateSubmitButton()で、<input type="submit" value="アップロード">を作ります。
そしてこの2つをhtmlでいうところのformとして扱います。

Google Apps Scriptを利用する上で絶対に理解しないといけないのが
{Uiインスタンス}で、このオブジェクトを利用することで、htmlの出力を指示していくわけですが
これはまたの機会に・・・

DriveAppクラス


サーバー側の処理としては、Googleドライブを操作するために
DriveAppクラスのメンバを操作します。
今回はGoogleドライブの特定のフォルダにファイルをアップしたかったので

DriveApp.getFolderById('XXXXX');

でフォルダを取得し、createFile()メソッドでクライアントから引き渡されたファイルを
フォルダの中に作っています。

doPost(e)メソッド


クライアント側からサーバー側にポストされた時、
doPost(e)が実行されます。この辺の仕組みや概念の学習が必要で
Google Apps Srriptを利用する場合必須の知識となります。

今回はeに格納されているアップロードされたファイルを取り出し
Googleドライブにファイル作成を行っています。

アップローダーのソースコード


できあがったコードはこんな感じ


GAS (共有の都合でみえないかも)
GASアップローダー
実行画面はこんな感じ。

実行画面

ファイルを選んで、アップロードをクリック
アップロード完了

Googleドライブにファイルが保存できた。
ドライブ

ちなみに選択ファイルが0byteの場合、Googleドライブ側ではファイルが選択されていないのと
同じ扱いになるので注意です。 続きを読む

テーマ:プログラミング - ジャンル:コンピュータ

次のページ

FC2Ad