【发布时间】:2018-01-04 13:03:29
【问题描述】:
我正在生成 PDF 格式的发票,并希望将它们直接上传到 S3。
我正在使用 Wicked-PDF 和官方 AWS 开发工具包。
gem 'wicked_pdf'
gem 'aws-sdk-s3', '~> 1'
现在我创建 PDF:
pdf = render_to_string pdf: "some_file_name", template: "invoices/download", encoding: "UTF-8"
想上传:
s3 = Aws::S3::Resource.new(region: ENV['AWS_REGION'])
obj = s3.bucket('bucket-development').object('Filename')
obj.upload_file(pdf)
我得到的错误:
ArgumentError: string contains null byte
如果我首先将 PDF 存储到定义的路径并使用 save_path 它可以工作:
save_path = Rails.root.join('public','filename.pdf')
File.open(save_path, 'wb') do |file|
file << pdf
end
但我想将临时 PDF 直接上传到 S3,而不先将 PDF 保存到我的公共文件夹。
【问题讨论】:
标签: ruby-on-rails amazon-s3 wicked-pdf