Project

General

Profile

Actions

Defect #10832

closed

REST Uploads fail with fastcgi

Added by Jeffrey Clark almost 12 years ago. Updated almost 12 years ago.

Status:
Closed
Priority:
Normal
Category:
REST API
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Resolution:
Fixed
Affected version:

Description

Unable to upload attachments through REST API.

curl --data-binary "@README" -H "Content-Type: application/octet-stream" -X POST -u admin:test http://localhost/uploads.xml

Processing AttachmentsController#upload to xml (for 127.0.0.1 at 2012-05-04 11:52:53) [POST]
  Parameters: {"action"=>"upload", "controller"=>"attachments", "format"=>"xml"}

NoMethodError (undefined method `size' for #<Rack::RewindableInput:0x7ffb9b162fd0>):
  app/models/attachment.rb:78:in `file='
  app/controllers/attachments_controller.rb:70:in `new'
  app/controllers/attachments_controller.rb:70:in `upload'
  dispatch.fcgi:27

Rendering rescues/layout (internal_server_error)

Files

rest-upload-fastcgi.patch (716 Bytes) rest-upload-fastcgi.patch Jeffrey Clark, 2012-05-04 20:49
Actions #1

Updated by Jeffrey Clark almost 12 years ago

Webrick appears to work fine. Perhaps a problem related to fastcgi.

Actions #2

Updated by Jean-Philippe Lang almost 12 years ago

  • Target version set to 1.4.2

I'm able to reproduce with apache+fastcgi.

Actions #3

Updated by Jeffrey Clark almost 12 years ago

Unfortunately the various Rack::Handler's don't handle input all the same way :(

Actions #4

Updated by Jean-Philippe Lang almost 12 years ago

Or maybe (untested):

Index: app/controllers/attachments_controller.rb
===================================================================
--- app/controllers/attachments_controller.rb    (revision 9616)
+++ app/controllers/attachments_controller.rb    (working copy)
@@ -67,7 +67,7 @@
       return
     end

-    @attachment = Attachment.new(:file => request.body)
+    @attachment = Attachment.new(:file => request.raw_post)
     @attachment.author = User.current
     @attachment.filename = Redmine::Utils.random_hex(16)

Actions #5

Updated by Jeffrey Clark almost 12 years ago

Jean-Philippe Lang wrote:

Or maybe (untested):

Nope :(

NoMethodError (undefined method `read' for #<String:0x7f191b1fbae0>):
  app/models/attachment.rb:114:in `files_to_final_location'
  app/models/attachment.rb:112:in `open'
  app/models/attachment.rb:112:in `files_to_final_location'
  app/controllers/attachments_controller.rb:74:in `upload'
  dispatch.fcgi:27
Actions #6

Updated by Jean-Philippe Lang almost 12 years ago

Jeffrey Clark wrote:

Nope :(

The patch should work after r9630.

Actions #7

Updated by Jean-Philippe Lang almost 12 years ago

  • Subject changed from REST Uploads fail to REST Uploads fail with fastcgi
  • Assignee set to Jean-Philippe Lang
Actions #8

Updated by Jean-Philippe Lang almost 12 years ago

  • Status changed from New to Closed
  • Resolution set to Fixed

Fixed in 1.4-stable (r9653) and trunk (r9652). Tested with apache2+fcgid.

Actions

Also available in: Atom PDF