Pet*_*own 2 pdf ruby-on-rails amazon-s3 paperclip
我正在尝试将PDF上传到后台进程中生成的AWS S3.我得到的错误有点神秘,我希望有人遇到这个或者能够引导我朝着正确的方向前进.我在应用程序的其他部分使用paperclip,但是这些正在获取表单数据,因为这是创建PDF并在上载之前将其保存到本地临时目录.
相关宝石:
码:
MyDownload < ActiveRecord::Base
has_attached_file :download,
storage: :s3,
default_style: :original,
s3_permissions: 'authenticated_read',
s3_credentials: "#{Rails.root}/config/s3.yml",
bucket: S3_BUCKET,
path: ":class/:attachment/:id/:style/:filename",
s3_protocol: 'https'
validates_attachment_content_type :download, content_type: [/application\/(x\-)?pdf/i]
validates_attachment_presence :download
end
Run Code Online (Sandbox Code Playgroud)
在我的后台进程中,我知道PDF已生成,可以在tmp_path中查看.这是我正在使用的一些代码:
PDFKit.new(report_content).to_file(tmp_path)
obj = MyDownload.new(date: Date.today)
obj.download = File.new(tmp_path)
obj.valid? # returns true
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时它失败了:
obj.save!
(AWS::S3::Errors::InvalidArgument)
(eval):3:in `put_object'
Run Code Online (Sandbox Code Playgroud)
事实证明,切换到aws-sdk gem需要s3_permissions选项作为符号.更改'authenticated_read'以:authenticated_read解决问题.
| 归档时间: |
|
| 查看次数: |
1140 次 |
| 最近记录: |