【问题标题】:Creating a dashboard using csv files使用 csv 文件创建仪表板
【发布时间】:2014-10-01 02:49:31
【问题描述】:

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

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

谢谢!

【问题讨论】:

  • 安全应该不是真正的问题,因为使用图表的任何人都可以查看这些值。对 CSV 的访问应在站点本身的Session 基础上完成,也就是当人们登录您的站点时。手动或直接在服务器上编辑和上传,这确实是个人喜好。 (制作脚本?)
  • 一般情况下,csv应该放在webserver上,因为$.get()函数需要public url来加载文件。希望对你有帮助

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


【解决方案1】:

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

https://github.com/dwilkie/carrierwave_direct

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

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

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

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

【讨论】:

  • 这正是我所需要的。谢谢!
猜你喜欢
  • 2020-04-16
  • 2015-09-18
  • 2011-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-20
  • 2020-04-03
  • 1970-01-01
相关资源
最近更新 更多