Webアプリのリンクをクリックしたときに、SkyOnDemandで生成したバイナリファイルをダウンロードさせる方法
Webアプリケーションのリンクやボタンをクリックしたときに、SkyOnDemandのスクリプトを呼び出し、そこで生成したファイルをブラウザからダウンロードする方法について説明します。
スクリプトの設定方法
スクリプト設定のポイントは、バイナリ型の出力変数を定義することです。このバイナリ型の出力変数に、スクリプト内で生成したファイルを「ファイルシステムアダプタ」の「ファイルシステム読み取り」を使ってファイルの内容をセットします。
もっとも単純化したスクリプトは次のようなものです。バイナリ型の出力変数として file という名前の変数を作成しています。
「ファイル読み取りアイコン」のプロパティは次のとおりです。ここでは先に実行されるスクリプトにて、/data/downloads ディレクトリにファイルが1つ生成されているものとして設定しています。
「変数にセット」の設定は次のとおりです。
以上の設定により、file変数にバイナリファイルが設定できます。
HTTPトリガーの設定方法
トリガーの設定ポイントは2箇所です。
1ページ目の画面で次の2箇所に気をつけます。
- 「Content-Type」に「指定しない」を設定します。
- 「ファイルとして出力」にチェックをいれて「ファイル名」を指定します。ここで指定したファイル名でダウンロードされます。(現在の仕様ではファイル名を動的に変更することはできません。(この例でいいますと、毎回download.xlsxという名前でダウンロードされます。)
2ページ目で「スクリプト出力」に、作成したファイルが出力されるように設定します。
以上のように設定し、あとはHTTPトリガー呼び出しに必要な認証設定などを行ってください。
補足
上記のHTTPトリガーによりレスポンスヘッダは次のように設定されます。
・Content-Disposition:attachment; filename=設定したファイル名
・Content-Type:application/octet-stream; name=設定したファイル名