Ruby の Grape API を使用してバイナリ ファイル (.p12 ファイル) をダウンロードできるようにしたい。これが私が試みていることです。
get '/download_file' do
pkcs12 = generate_pkcsfile
content_type('application/octet-stream')
body(pkcs12.der)
end
ActionController を使用した同等のコードは次のとおりです。
begin
pkcs12 = generate_pkcsfile
send_data(pkcs12.der,
:filename => 'filename.p12')
end
問題は、API を使用してダウンロードしたファイルは、すべての文字に「\ufffd」プレフィックスが埋め込まれたテキスト ファイルのように見えるのに対し、ブラウザを使用してダウンロードしたファイルはバイナリ ファイルのように見えることです。GRAPE API フレームワークを使用して、ActionController の send_data 経由でダウンロードされるのと同じファイルをダウンロードできるようにする方法