首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Rails 5中将恶意生成的PDF上传到AWS S3

在Rails 5中将恶意生成的PDF上传到AWS S3
EN

Stack Overflow用户
提问于 2018-01-04 21:03:29
回答 1查看 1K关注 0票数 3

我正在生成PDF格式的发票,并想直接上传到S3。

我使用的是Wicked-PDF和官方的AWS SDK。

代码语言:javascript
复制
gem 'wicked_pdf'
gem 'aws-sdk-s3', '~> 1'

现在我创建PDF:

代码语言:javascript
复制
pdf = render_to_string pdf: "some_file_name", template: "invoices/download", encoding: "UTF-8"

并想上传它:

代码语言:javascript
复制
s3 = Aws::S3::Resource.new(region: ENV['AWS_REGION'])
obj = s3.bucket('bucket-development').object('Filename')
obj.upload_file(pdf)

我得到的错误是:

代码语言:javascript
复制
ArgumentError: string contains null byte

如果我先将PDF存储到定义的路径,并使用save_path,它可以工作:

代码语言:javascript
复制
save_path = Rails.root.join('public','filename.pdf')
File.open(save_path, 'wb') do |file|
 file << pdf
end

但我想上传他的临时文件直接到S3,而不是先保存到我的公共文件夹。

EN

回答 1

Stack Overflow用户

发布于 2018-01-04 21:16:37

亚马逊网络服务软件开发工具包中的upload_file方法使用的是S3 - see the method's description

为了从内存上传对象,您应该使用put方法-请参阅上传on this page的第二种方法中对该方法的描述

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48095959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档