ファイルを受け取り、いくつかのデータを操作し、出力 .csv ファイルを書き込むスクリプトがあります。.csv ファイルは、ユーザーが表示およびダウンロードできる必要があります。これは、S3 を使用した heroku 上の Rails アプリです。
現在、スクリプトは、ハードコードされたローカル ファイルシステムの出力ファイルを「1 行ずつ」書き込みます。このスクリプトを rails、heroku、および amazon S3 と統合する場合、スクリプトを再構築してコントローラーで行ごとに配列を作成し、それを一度 S3 に書き込む必要がありますか? それとも、ローカルで行うように S3 に 1 行ずつ書き込みを続けますか?
コントローラーでアレイを構築して S3 に投稿する必要があるように見えますか? 次に、コントローラーの「表示」アクションは、ビューで使用されるインスタンス変数のファイルを参照します。ユーザーがクライアント側で csv を作成するだけで、S3 に保存するファイルを作成する必要がないのではないかと思いますか? これはAJAXの仕事ですか?
ローカルシステム上の他のファイルと同じように、ファイルにアクセスするために aws-sdk を見ています。
そのままの大まかな例として、行コードごとに記述します。
file_in.each_line do |line|
#some line manipulation
file_out << output
end
このコードを簡単に切り替えて配列を構築し、一度書き込む...最初は1行ずつ書いたので、大きな配列にファイル全体がありません...
file_in.each_line do |line|
#some line manipulation
@array.push(output)
end
file_out << @array