我正在开发一个 Rails 应用程序,以将我存储在 Amazon S3 上的 Word 文件发送到convertapi以转换为 PDF。我正在使用回形针 gem来管理文件,并使用遏制 gem来发出实际请求。
# model with property has_attached_file :attachment
def convert_docx_to_pdf
base = "https://do.convertapi.com/Word2Pdf"
api_key = '*****'
file = open(attachment.url)
c = Curl::Easy.new(base)
c.multipart_form_post = true
c.http_post(
Curl::PostField.file('thing[file]', file.path),
Curl::PostField.content('ApiKey', api_key)
)
end
我正在尝试按照此处的遏制文档进行操作。
当我从 rails 控制台运行它时,它只是返回true
. 我想捕获生成的 PDF。
(我已经验证,如果我在 convertapi 的测试端点工具上手动上传文件,这可以工作。)
更新 09.18.15
我实施了乔纳斯建议的改变。这是新代码:
def convert_docx_to_pdf
base = "https://do.convertapi.com/Word2Pdf"
api_key = ENV['CONVERTAPI_API_KEY']
file = open(attachment.url)
Curl::Easy.new('https://do.convertapi.com/Word2Pdf') do |curl|
curl.multipart_form_post = true
curl.http_post(Curl::PostField.content('ApiKey', api_key), Curl::PostField.file('File', file.path))
return curl.body_str
end
end
仍然没有运气,curl.body_str
只是返回"Bad Request"
。
( file.path = /var/folders/33/nzmm899s4jg21mzljmf9557c0000gn/T/open-uri20150918-13136-11z00lk
)