CSVファイルを取得するためにURLに接続するコントローラーがあります。
次のコードを使用して、応答でファイルを送信できます。これは正常に機能します。
def fileURL = "www.mysite.com/input.csv"
def thisUrl = new URL(fileURL);
def connection = thisUrl.openConnection();
def output = connection.content.text;
response.setHeader "Content-disposition", "attachment;
filename=${'output.csv'}"
response.contentType = 'text/csv'
response.outputStream << output
response.outputStream.flush()
ただし、ファイル全体がコントローラーのメモリに読み込まれるため、この方法は大きなファイルには適していないと思います。
ファイルのチャンクをチャンクごとに読み取り、ファイルをチャンクごとに応答チャンクに書き込めるようにしたいと考えています。
何か案は?