[英]RoR - Download ZIP file using gmail gem
我正在嘗試設置一些耙任務。 它要求我連接到gmail並下載作為附件發送的Zip文件。
我已經編寫了以下代碼(對於下載csv效果很好)-
gmail = Gmail.connect(ENV["USERNAME"], ENV["PASSWORD"])
msg = gmail.inbox.find(from: ENV["REC_USER"],
subject: args[:subject])
dir_path = "lib/mfu_payment_data/"
Dir.mkdir dir_path unless File.exists?(dir_path)
if msg.first
msg.first.attachments.each do |attachment|
File.write(File.join(dir_path,attachment.filename),attachment.body.decoded)
end
end
它引發以下錯誤-
rake aborted!
Encoding::UndefinedConversionError: "\xED" from ASCII-8BIT to UTF-8
我認為這與attachment.body.decoded有關,但是我不知道該怎么做。
您可以嘗試以二進制模式寫入文件:
File.open('/path/to/file;, 'wb') { |file| file.write(attachment.body.decoded) }
"b"
二進制文件模式在Windows上禁止EOL <-> CRLF轉換。 除非明確指定,否則將外部編碼設置為ASCII-8BIT。
在File
繼承自的IO類中描述了這些模式。
我認為您有很多選擇來生成zip文件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.