我正在构建一个与第三方API交互的rails应用
当用户将文件上传到rails时,应通过HTTP POST将其转发到第三方站点。
在某些情况下,上传可能是几百MB。
目前,我刚刚使用Net :: HTTP重新发布到API并访问了多部分表单对象
@tempfile = params [:video] [:file_upload] .tempfile
虽然这很麻烦但感觉有点脏。
有更好的方法吗?
答案 0 :(得分:1)
是否可以让用户直接发布到第三方服务,或者您是否必须通过Rails堆栈处理API?理想情况下,您可以执行此操作,而不必将文件加载到堆栈中,然后将其重新发布到API。如果您无法直接发布,我建议您查看API是否有流媒体服务,这样您就可以立即发送部分文件而不是整个文件。无论哪种方式,我认为您将开始遇到大量文件的API和API侧的Timeout错误,因此您必须增加自己的超时或创建不同类型的流式文件上传器。
答案 1 :(得分:0)
使用DelayedJob启动后台作业。在延迟的工作中,您可以尝试rails redirect_to。