我正在开发一个在Heroku堆栈上运行的Rails web应用程序,该应用程序负责处理附加到Rails数据库对象上的一些文档。也就是说,假设我们有一个名为product_i的对象,它属于类/表Product/products,product_i_prospectus.pdf是关联的产品招股说明书,其中每个产品都有一个招股说明书。
由于我在product_i上工作,因此没有超级用户访问权限,因此我计划使用亚马逊S3来存储与Heroku相关的静态资源。到现在为止还好。
现在假设product_i_attributes.txt也是我想要上传的文件,实际上我想根据文件product_i_attributes.txt中的信息在product_i对象(即表中与product_i对应的行)中填写信息。
简而言之:我想根据上传到我的S3存储桶的静态文本文件的内容来创建或修改数据库对象。
严格地说,一旦它们在存储桶中,我实际上不需要能够访问它们,我只需要从文本文件中创建一些东西。
发布于 2012-10-27 10:25:33
我已经用csv文件做了类似的事情。我不会尝试在上传时直接处理文件,因为它可能是资源密集型的。
我的解决方案是将文件上传到s3,然后调用后台作业方法(delayed_job、resque等)。在上传后处理csv的。然后,您可以在作业处理后调用delete,以便在处理后不再需要该文件时将其从s3中删除。
对于Heroku,这将要求您添加一个worker (如果您还没有一个worker)来处理将处理文本文件的后台作业。
发布于 2012-10-27 06:17:37
看一看aws-sdk-for-ruby的精华。这将允许您访问您的S3存储桶。
https://stackoverflow.com/questions/13095139
复制相似问题