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=設定したファイル名