如何将prawn PDF文件存储到Amazon S3中

use*_*621 5 pdf prawn amazon-s3 paperclip ruby-on-rails-3

我的路径有问题.在我的模型中,我有以下设置:

class Pdffiles < ActiveRecord::Base
  belongs_to :user

  has_attached_file :invoice_file,
                    :path => ":rails_root/public/pdffiles/:user_id/:style/:basename.:extension",
                    :url => "/pdffiles/:user_id/:style/:basename.:extension",

                    :storage => :s3,
                        :bucket => '...',
                        :s3_credentials => {
                          :access_key_id => '...',
                          :secret_access_key => '...'
                        }  
end
Run Code Online (Sandbox Code Playgroud)

并在控制器看起来我的行动:

   pdf = Prawn::Document.new
    pdf.move_down 70

    pdf.text("Prawn Rocks")
    pdf.render_file('prawn.pdf')
    pdf_file = File.open('prawn.pdf')

    pdff = Pdffile.new()
    pdff.pdffile_file = pdf_file
    pdff.user_id = todays_user.id
    pdff.save
Run Code Online (Sandbox Code Playgroud)

而我的问题是,这个PDF文件存储在S3服务器上,但是在不好的地方.而是目录app/public/pdff/id_of_a_user/file_name_of_pdf_file是保存到的文件

Users/my_name/my_ruby_root_directory/name_of_my_project/public/pdffiles/id_of_a_user/file_name_of_pdf_file.

我不完全确定,如果我使用大虾正确保存PDF文件,但我认为问题可能在控制器中,我已经设置了地方,在那里创建的文件必须保存...

我想问一下,为了将PDF文件保存到S3中的正确目录,我应该更改...所有帮助将不胜感激!

曼尼谢谢,9月

Jos*_*osh 2

您可以使用 CarrierWave ( https://github.com/jnicklas/rierwave ) 之类的东西 - 它使得使用 FOG 库上传到 S3 变得非常容易https://github.com/jnicklas/rierwave