Ruby on rails 使用api和carrierwave上载文件

Ruby on rails 使用api和carrierwave上载文件,ruby-on-rails,ruby,api,carrierwave,Ruby On Rails,Ruby,Api,Carrierwave,我正在为webservice编写api,我需要为用户提供使用此api上载文件的能力 对于我的上传,我使用carrierwave,但不确定如何将文件从api请求传递到carrierwave,以及如何将文件从客户机发送到服务器通常,我通过REST api实现文件上传,方法是允许客户机发送PUT请求,请求体中包含文件的base64编码二进制数据 然后,您可以将客户机请求路由到CarrierWave上载程序,该上载程序可以使用类似FilelessIO.new(Base64.decode64(encode

我正在为webservice编写api,我需要为用户提供使用此api上载文件的能力


对于我的上传,我使用carrierwave,但不确定如何将文件从api请求传递到carrierwave,以及如何将文件从客户机发送到服务器

通常,我通过REST api实现文件上传,方法是允许客户机发送PUT请求,请求体中包含文件的base64编码二进制数据


然后,您可以将客户机请求路由到CarrierWave上载程序,该上载程序可以使用类似
FilelessIO.new(Base64.decode64(encoded_file))

的方法对请求正文中包含的二进制数据进行解码,基本上它是基于API使用者使用的工具。如果API使用者正在使用ruby,那么可以通过传递File对象来使用它,或者使用httmultipparty gem,我们可以上传文件

供您参考。如果您需要更多帮助,请告诉我。

试试。它使用多部分表单数据等酷炫功能封装了net/http:

require 'rest_client'
RestClient.post('http://localhost:3000/foo', 
  :name_of_file_param => File.new('/path/to/file'))
它还支持流媒体


gem安装rest客户端
将帮助您开始。

另外,请检查:如果我们不讨论图像文件,它是否会静止不动?比如说pdf或.docx文件。base64编码这样的文件还是可能的吗?@Sebastialonso是的,你也应该能够base64编码PDF或DOCX文件。所以,没有一个通用的工具适合所有类型的消费者?