使用csv文件创建仪表板

时间:2014-08-07 18:34:25

标签: ruby-on-rails csv heroku highcharts dashboard

我正在尝试使用CSV文件,Highcharts.js和HTML5创建仪表板。在本地开发环境中,我可以使用CSV在我的文件系统上呈现图表并托管在Web上。目前的目标是在Heroku上实时部署仪表板。

CSV将按照Highcharts的要求以一致的格式每天手动更新一次。 Web应用程序应该能够使用这些新的,标准化的#34;来呈现图表。每当请求仪表板页面时都会显示CSV。我的问题是:我在哪里托管这些CSV?我是否使用S3?我是否将它们保存在我的本地文件系统上并每天手动将更新推送到heroku?如果CSV托管在另一台机器上,我的应用程序(以及我的应用程序)是否有办法安全地访问它们?

谢谢!

1 个答案:

答案 0 :(得分:0)

使用gem carrierwave direct直接将文件从客户端上传到Amazon S3存储桶。

https://github.com/dwilkie/carrierwave_direct

您基本上为受信任的登录客户端提供上载文件的临时密钥,而不是其他内容,然后客户端将有关上载文件的信息返回到您的Web应用程序。确保您已将上传设置为私有,以防止任何第三方试图强行查找CSV。然后,您需要创建一个后台工作程序来对CVS文件进行实际操作。宝石有一些关于如何做到这一点的好文档。

https://github.com/dwilkie/carrierwave_direct#processing-and-referencing-files-in-a-background-process

简而言之,在后台进程中,您将暂时将文件下载到heroku,解析出来,获取所需数据,然后丢弃heroku上的副本,如果您想在S3上复制该副本。通过这种方式,你可以解决永久文件存储的heroku问题,以及直接上传的绑定dynos的问题,因为在heroku上没有像NGINX那样的文件上传。

还要确保文件大小不超过工作人员dyno的可用内存,否则会崩溃。感觉你似乎不需要担心并发性我建议https://github.com/resque/resque

相关问题