Rails отправляет 0-байтовые файлы с помощью send_file

Я не могу заставить работать send_file (Model.attachment.path). Он не дает сбоев, вместо этого он отправляет клиенту файл размером 0 байт, хотя имена файлов верны.

Эта проблема началась после того, как я сделал большой переход с Rails 2.3.8 на 3.

В ходе этой миграции произошло много других событий, и я постараюсь подробно описать все из них.

  1. Изменение распределения / Изменение сервера. Rackspace RHEL5 на Linode Ubuntu 10.04LTS
  2. Изменение версии Ruby, 1.8.6 -> 1.9.2
  3. Изменение версии Rails, 2.3.8 -> 3.0.0
  4. Изменение платформы httpd, apache2 -> nginx (Однако Я также пробовал использовать apache2, и это не сработало).

Я переместил вложения через ftp, поскольку они не были частью моих репозиториев git, поэтому они были опубликованы с помощью cap deploy, вместо ручного удаленного ftp (RHEL5) на локальный (Win7 ), затем с локального (Win7) на удаленный (Ubuntu10).

Я знаю, что FTP-соединение не сохраняет права доступа к файлам при передаче, поэтому я также имитировал chmod-файлы, которые были на моих предыдущих серверах, поэтому они почти идентичны. (пользователи / группы разные, установлены в root: root вместо olduser: olduser).

Фрагмент запроса на загрузку вложения из моего производственного журнала.

Started GET "/attachments/replies/1410?1277105698" for 218.102.140.205 at 2010-09-16 09:44:31 +0000
  Processing by AttachmentsController#replies as HTML
  Parameters: {"1277105698"=>nil, "id"=>"1410"}
Sent file /srv/app/releases/20100916094249/attachments/replies/UE0003-Requisition_For_Compensation_Leave.doc (0.2ms)
Completed 200 OK in 78ms

Все в порядке. Позвольте мне также исключить локальные проблемы, я пробовал загружать через Chrome как на Win7, так и на Ubuntu (на Vbox).

Позвольте мне также заверить вас, что путь действительно правильный.

root@li162-41:/srv/app/current# tail /srv/app/releases/20100916094249/attachments/replies/UE0003-Requisition_For_Compensation_Leave.doc
#
    #
         %17nw
                 HQ��+1ae����
                                             %33333333333(��QR���HX�"%%��@9
��@�p4��#P@��Unknown������������G��z �Times New Roman5��Symbol3&�
                       �z �Arial5&�

Подводя итог вопросу, как мне заставить send_file отправлять файлы вместо фальшивого 0-байтового мусора.

23
задан Joshua Pinter 3 March 2012 в 05:21
поделиться