Joined February 2015
·

Johnny Mnemonic

Russian Federation
·
·

Posted to Nginx direct file upload over 1 year ago

Я только сейчас обратил внимание, что все вырезанные параметры и токены и все остальное было записано вместе с файлом, таким образом на . location /upload нужно отправлять только файл, без какой либо лишней информации.

Posted to Nginx direct file upload over 1 year ago

Если добавить в nignx к location "proxysetheader Content-Type "multipart/form-data";"
А в rails controller "protectfromforgery except: :uploadfile"
То схема заработает. Правда я не знаю, правильно ли и безопасно ли это делать.

Posted to Nginx direct file upload over 1 year ago

Здравствуйте, Анатолий!
Спасибо вам за данную заметку.
Я к сожалению столкнулся с рядом трудностей и отчаявшись, прошу Вас помочь разобраться мне, я обратил внимаение что в профиле вы указали rails, а я как раз его использую. rails 4.2, rack 1.6.0, nginx 1.6.2.

Если использовать данную конфигурации Webrick отдает 500 ошибку bad content body
Если убрать опцию proxysetbody off; то все отлично, НО запрос доходит до rails app и она его пишет в ОЗУ а этого делать не надо.
Если добавить proxysetbody off; и proxysetheader Content-Type "multipart/form-data"; то webrick возвращает ActionController::InvalidAuthenticityToken.

Я уже 3 день ковыряюсь с настройками и опциями, и все никак не могу заставаить это все работать. Мне то и нужено, что бы nginx сохранял файл, сообщал его путь в rails и что бы rails не писал тело файла в ОЗУ после nginx.

View Haml
= form_for :file, url: '/uploadfile', html: { multipart: true } do |f|
  = file_field_tag 'uploaded_files[]', required: true
  = f.submit 'Save'
end

Class
  def uploadfile
    # render :text => request.headers['X-File']
    render :text => env.inspect
  end
end

Route
Rails.application.routes.draw do
  resources :files
  root 'files#index'
  match '/uploadfile' => 'files#uploadfile', via: [:get, :post]
end

Или вот на pastebin

nginx.conf - http://pastebin.com/YuKjNkee
rails app - http://pastebin.com/G3Bwzggu

Achievements
1 Karma
0 Total ProTip Views