其余客户端gem和文件上传

时间:2018-06-29 11:13:03

标签: ruby-on-rails ruby

我正在尝试在仅使用Rails API的应用程序中上传文件。我正在使用rest-client gem。

我使用邮递员访问Rails API。在我的代码中,我需要将此文件上传到第三方API。

如何使用rest-client gem上传文件?

我每次都从其他客户端的宝石中走出错误。

  

“ 415不支持的媒体类型”

Postman请求和文件上传参数在下面

Started PUT "/update_kyc/3233" 
  Parameters: {"identity_kyc_document_1"=>#<ActionDispatch::Http::UploadedFile:0x007f895dbcaf00 @tempfile=#<Tempfile:/var/folders/95/z56d5kd10_sb7s82b982fpjw0000gn/T/RackMultipart20180629-1656-107ht8x.jpeg>, @original_filename="test1.jpeg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"identity_kyc_document_1\"; filename=\"test1.jpeg\"\r\nContent-Type: image/jpeg\r\n">}

我的服务代码如下:

def update_request method, opts ={}
        headers = set_request_header_update
        payload = prepare_for_upload opts#encode_options opts
        url = @base_uri + url_path(method)
        begin
            RestClient::Request.execute method: :put, url: url, payload: payload.to_json, headers: headers
        rescue RestClient::ExceptionWithResponse => e
            e.response
        end                    
    end

其他方法如下

def set_request_header_update
        headers = {
          :Authorization => @api_key,
          # :content_type => 'multipart/mixed',
          accept: :json,
          multipart: true
        }
    end


def prepare_for_upload opts
        data = { :file => File.new(opts[:identity_kyc_document_1].tempfile) }
end

我无法将文件发送到网址。网址有效。

如何从传入的参数中获取和使用上载的文件详细信息?

谢谢 阿吉斯

0 个答案:

没有答案