我正在与发送PDF文件的外部API进行交互(标题内容类型为application / pdf)
当我记录响应时,我得到类似(片段)
的内容HTTP/1.1 200 OK
Date: Wed, 11 Feb 2015 12:42:07 GMT
Server: Apache/2.2.20 (Win32) DAV/2 mod_ssl/2.2.20 OpenSSL/0.9.8r PHP/5.2.17
X-Powered-By: PHP/5.2.17
Content-Disposition: inline; filename="Label2.pdf"
Cache-Control: private, max-age=0, must-revalidate
Pragma: public
Vary: Accept-Encoding
Connection: close
Transfer-Encoding: chunked
Content-Type: application/pdf
%PDF-1.3
3 0 obj
<</Type /Page
/Parent 1 0 R
/Resources 2 0 R
/Contents 4 0 R>>
endobj
4 0 obj
<</Filter /FlateDecode /Length 330>>
stream
xmQËNÃ0¼÷+æl½ëWÒ[Q[ {K\)UiERàù¤DÂÈ3»Ù<YÑ]ñÁB¾Á<o®5éÞ3)A^àæñP r·È·
ë^Qê¡âöRdKÖâýã{ÆìåèÜNR²
b-± É2FðÚ©°ªOÖÅw±kUä¡>¢9Bög%W¦K5±m/«jUõïz¾Ã6bàçM[À¢MÑ©³6%£;Û,,äÔWÌ"Z÷H&B¤ymû¡ac)ÕpܨáO7Ñhª fÓgÌÊúXë¯cyØ#ÁSv5å>rêÎe¼õ[¾í.\£JT|'.$|ú9/I»a§ä·ÑÆ'$¹@±áÉ~³mF»7u¾tá/G¶
endstream
endobj
1 0 obj
<</Type /Pages
/Kids [3 0 R ]
/Count 1
/MediaBox [0 0 595.28 841.89]
>>
endobj
5 0 obj
<</Type /Font
/BaseFont /Helvetica-BoldOblique
/Subtype /Type1
/Encoding /WinAnsiEncoding
>>
endobj
6 0 obj
<</Type /Font
/BaseFont /Helvetica
/Subtype /Type1
/Encoding /WinAnsiEncoding
....
^í½ P×ú-¾ßË¿¬Ê«T¥RVÊÒÿ(çÙ«1ñçÕðÄ2)j 3ÌTD@QAÁ pQEDEAPDAB5oíýÇÃÌo.UÛSMÛ½{ث׷¾ÝÝ»Ù_O>J'þútë~ÚÆ¡>«LÍæý¢'QèÜSßµ·ù¼_üÖX¬ß|üRâÝG×Êþ,"?|øø¿?}üôét®
3´2ÐÞ4|yÃ:5Ou=w5L=T0ç®n८ﮮã¢6Í{°S¨^èfÉöcg¯Î-ÈzWñ*8ôácQ
ÔTQêoÖ$¿¥û¯µÒ÷P×sS? <:.ÿÀD
\Ôt%ê_⮥t]Õô]{Ìéa¼j§ß¾ÔØ+§¿Ê¯úÀkV |B©øôB«´m8Vª#éÞÈHS_Dù® VqåÆ¥EÇ¥ç$÷~¨3 Ú6vpÒů¾.U'cdQOE©/Ö!Ä¿ï*ÞØ/Ñ@EÒôÂùäÌ)
¢9=¡LÒ¨çÁõì7ï!!:!\DÔ;òðéÝú¢^
¥`ÉTh´ü¬IÍP=uò Q
QÁ¢Âkoõ"«£Þ³yà
í<@#UÔk]´=9yÒÖ³;mQj¢ ÕQ¡¢¡Ç«À±ó£¬7ì[¨ñ ½äbÚ[IRU*JµF ís Ä¡/\d
.....
我的问题是如何在ruby File对象中包装此响应,以便我可以将pdf上传到S3等外部存储服务?
非常感谢
答案 0 :(得分:1)
您正在记录的响应包含主体中的标题和PDF文件本身。
我只是将其保存到临时文件中:
f = Tempfile.open("/tmp/response.pdf") do |fh|
response.body # or the method to get the body from your response object
end
然后将您的文件f
上传到您最喜欢的云服务。