ruby-on-rails – Rails二进制流支持
我即将开始一个项目,需要支持大型的二进制文件.我想使用Ruby on Rails作为webapp,但我关心BLOB的支持.根据我对其他语言,框架和数据库的了解,BLOB经常被忽视,因此具有差,难,和/或错误的功能.
RoR是否充分发布BLOB?一旦您已经致力于Rails,是否有任何障碍? BTW:我想使用PostgreSQL和/或MySQL作为后端数据库.显然,底层数据库中的BLOB支持很重要.目前,我想避免专注于DB的BLOB功能;我对Rails本身的反应更感兴趣.理想情况下,Rails应该从我隐藏数据库的细节,所以我应该可以从一个切换到另一个.如果不是这种情况(即:使用特定DB的Rails有一些问题),请提及它. 更新:此外,我不只是在这里谈论ActiveRecord.我需要处理HTTP端的二进制文件(文件上传有效).这意味着通过Rails访问适当的HTTP头和流.我已经更新了问题标题和描述,以反映这一点. 解决方法
1为attachment_fu
我在我的一个应用程序中使用attachment_fu,并且必须将数据存储在数据库中(因为令人讨厌的原因超出了本Convo的范围). 我发现(BLOG)的(一个)棘手的事情是,你需要一个单独的代码路径来发送数据给用户 – 你不能简单地在文件系统上一个路径,就像你会是一个简简文件. 例如如果您存储头像信息,您不能简单地做: <%= image_tag @youruser.avatar.path %> 你必须编写一些封装逻辑并使用send_data,例如(以下只是一个例子,附件_fu,实际上你需要干这个) send_data(@youruser.avatar.current_data,:type => @youruser.avatar.content_type,:filename => @youruser.avatar.filename,:disposition => 'inline' ) 不幸的是,据我所知,attachment_fu(我没有最新版本)没有为你做巧妙的包装 – 你必须自己写. 附:看到你的问题编辑 – Attachment_fu处理你提到的所有烦人的东西 – 关于需要知道文件路径和所有的废话 – 除了存储在数据库中的一个小问题.试一试;这是rails应用的标准.如果你坚持重新创造轮子,附件的源代码应该记录大部分的错误! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |