我正在使用AWS lambda函数来接收包含附件的多部分请求,并将其上传到S3。
但是Lambda函数用替换字符替换了几个字符,因此附件损坏了。
我检查了PNG文件。
样本内容:\x89PNG\r\n\u001A\n\u0000\u0000\u0000
所有字符都按原样接收,但\x89
或通常\x**
被替换字符(U + FFFD)替换。
我正在将附件file_str
提取为字符串并写入文件,然后将其上传到s3。
File.open(file_path, 'w') do |f|
f << file_str
end
谢谢。
答案 0 :(得分:0)
您需要打开二进制模式才能使用(写入)二进制文件。
# ⇓ THIS
File.open(file_path, 'wb') do |f|
f << file_str
end
您尝试将内容存储在UTF-8中,并且\x89
无效的UTF-8。