Rails,Heroku,S3和静态资源

时间:2012-10-26 22:12:05

标签: ruby-on-rails heroku amazon-s3

我正在研究一个在Heroku堆栈上运行的Rails Web应用程序,它处理一些附加到Rails数据库对象的文档。即假设我们有一个名为product_i的类/表Product/products的对象,product_i_prospectus.pdf是相关的产品说明书,其中每个产品都有一个招股说明书。

由于我正在使用Heroku,因此没有root访问权限,因此我计划使用Amazon S3存储与product_i关联的静态资源。到目前为止,非常好。

现在假设product_i_attributes.txt也是我要上传的文件,实际上我想在product_i对象中填写信息(即表中与{{1}对应的行) }),基于文件product_i中的信息。

在一句话中:我想根据上传到我的S3存储桶的静态文本文件的内容来创建或更改数据库对象。

严格来说,我实际上不必能够访问它们,我只需要从文本文件中创建一些东西。

2 个答案:

答案 0 :(得分:0)

看看aws-sdk-for-ruby宝石。这将允许您访问S3存储桶。

答案 1 :(得分:0)

我做过与csv文件类似的事情。我不会尝试在上传时直接处理文件,因为它可能是资源密集型的。

我的解决方案是将文件上传到s3,然后调用上传后处理csv的后台作业方法(delayed_job,resque等)。然后,您可以在处理完作业后调用删除,以便在处理后不再需要该文件时从s3中删除该文件。

对于Heroku,这将要求您添加一个工作人员(如果您还没有工作人员)来处理将处理文本文件的后台作业。