我正在生成PDF发票,并希望直接将它们上传到S3。
我正在使用Wicked-PDF和官方AWS SDK。
现在我要创建PDF文件:
如果我先将PDF存储到一个已定义的路径,然后使用save_path,它就可以工作:
我正在使用Wicked-PDF和官方AWS SDK。
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 保存到我的公共文件夹中。