我的网站上的附件问题遇到了一些困难。目前,我们的iOS应用程序指向附件的API端点,并发送类似于此的请求:
POST /api/v2/attachments HTTP/1.1
--Boundary+0xAbCdEfGbOuNdArY
Content-Disposition: form-data; name="attachment"; filename="attachment.jpg"
Content-Type: image/jpeg
...image data...
--Boundary+0xAbCdEfGbOuNdArY--
现在,请求成功并且图像实际上已上传,但事实证明它是无效图像,因为边界数据被写入文件。它基本上是这样的:
file = Tempfile.new('attachment')
attachment_data = request.body.read
attachment_data.force_encoding('UTF-8')
file << attachment_data
attachment.asset = file
attachment.save!
显然request.body.read包含整个请求,Boundaries和all。我们实际上有一个剥离方法,它遍历文件的每一行并删除非图像数据,但这显然不具备高性能。
在一个理想的世界中,我们只是获取图像数据并使用它来填充临时文件,但我担心我完全不知道最好的方法。
欢迎思考。谢谢!