我目前有一个使用nested_form gem的大表单,我想添加“update”函数的功能,它将表单的pdf保存到AWS的S3。
目前我已经实现了PDFKit Gem,并且能够通过简单地将.pdf扩展名添加到路径来生成pdf。例如。
/user/2/form/2
<%= nested_form_for(@user,@form) do |f| %>
.....
<%= f.fields_for :images do |i|%>
.....
<% end %>
<% end %>
和/user/2/form/2.pdf呈现pdf。
我尝试使用Carrierwave实现此功能来创建隐藏:remote_image_url字段并将.pdf远程上传到s3,但这会导致超时,因为表单太大。我试图使用CarrierwaveDirect,但据我所知,无法在nested_form_for中使用direct_form_for,所以我不确定是否可以实现直接上传功能。
我已经开始使用适用于Ruby的AWS开发工具包来创建可以在保存时发生的后台进程。但是,我正在努力寻找一种方法,允许我从远程位置保存文件。
有没有我尚未考虑的替代方案?任何建议或指导将不胜感激。
// // EDIT
我在Heroku上运行,这会阻止在服务器上保存文件的简单性。但是,在阅读了几篇文章后here。我现在正在使用模型方法before_save将文件临时保存到服务器的路径。并将其直接转移到s3。仍然不确定从服务器获取文件到aws S3的最佳方法,但此时我将尝试使用适用于Ruby的AWS开发工具包,看看我能否做到这一点。