GoogleドライブでHTMLを配信する機能が終了しました。
これまでに幾つか、主にフォームで収集したデータの表示を低負荷で実現する方法として利用してきた(フォーム送信時にHTML生成し、そのHTMLを一般公開するといったこと)ので困りました。
そこで代替の方法を幾つか調べています。上記のリンク先に3つの代替手法が示されているのですが、今のところ必ずしも私の用途には合致しない or 使用方法が不明なところが残っています。
このため、Googleドライブの既存機能の組み合わせで代替する方法を検討しましたのでメモ書きします。この方法はアクセスがあまり多くないことを想定しています。
- 前提として上記のような利用を想定しており、配信したいHTMLがGoogleドライブ上にある
- Google Sitesなどからスクリプトエディターを起動(あるいは新規スクリプトを作成)
- 以下のようなスクリプトの内容とする
- function doGet(e) {
try {
htmlFile = DriveApp.getFileById(“HTMLファイルのID”);
blob = htmlFile.getBlob()
html = HtmlService.createHtmlOutput(blob);
} catch (ee) {
Logger.log(ee);
}
return html;
} - 上は単純化した例。キャッシュするなどすれば高速化・低負荷化が可能になるはず
- function doGet(e) {
- 公開→Webアプリケーションとして導入
- 実行は自分のアカウント、アクセスは対象範囲(一般公開ならば「全員(匿名ユーザーを含む)」)
- このとき表示されるURLが配信URLとなる
そもそものHTML生成もスクリプトを使っているので、ファイル出力せずに毎回生成し配信することも可能です。ただ、その方法だと負荷が大きくなりすぎて、処理時間が長くなったり、タイムアウトしてしまうことも危惧されます。
上の記載はその範囲では正しかったのですが、どうやら一般公開にしてファイルへの権限のないユーザーがアクセスすると警告が冒頭に付与されてしまうようです。