модуль загрузки nginx - PullRequest
       6

модуль загрузки nginx

0 голосов
/ 02 декабря 2010

У меня возникли проблемы с работой модуля загрузки nginx с моим приложением rails.

мой маршрут

     match '/images/fast_upload' => 'images#create', :via => :post

модель изображения

   attr_accessor :tmp_upload_dir
   after_create  :clean_tmp_upload_dir


   # handle new param
    def fast_asset=(file)
      if file && file.respond_to?('[]')
      self.tmp_upload_dir = "#{file['filepath']}_1"
      tmp_file_path = "#{self.tmp_upload_dir}/#{file['original_name']}"
      FileUtils.mkdir_p(self.tmp_upload_dir)
      FileUtils.mv(file['filepath'], tmp_file_path)
      self.asset = File.new(tmp_file_path)
      end
   end    

 private
 # clean tmp directory used in handling new param
  def clean_tmp_upload_dir
   FileUtils.rm_r(tmp_upload_dir) if self.tmp_upload_dir && File.directory?  (self.tmp_upload_dir)
  end        

nginx.conf

  upload_pass @fast_upload_endpoint;


  upload_store /pathto/shared/uploads_tmp 1;


  upload_store_access user:rw group:rw all:r;


  upload_set_form_field upload[fast_asset][original_name] "$upload_file_name";
  upload_set_form_field upload[fast_asset][content_type] "$upload_content_type";
  upload_set_form_field upload[fast_asset][filepath] "$upload_tmp_path";

  upload_pass_form_field "^image_id$|^authenticity_token$|^format$";
  upload_cleanup 400 404 499 500-505;
  }

  location @fast_upload_endpoint {

     passenger_enabled on;
     rails_env production;
  }

  location / {
   rails_env production;
   passenger_enabled on;
  }

В контроллере мой метод создания

    def create
     @image = current_user.images.build(params[:image])
     if @image.save

По сути, я не уверен, как заставить этот метод создания использовать nginx для загрузки.Я пытался использовать @image = @ resource.current_user.images.build (params [: image]), но это давало мне неопределенную ошибку метода.

1 Ответ

1 голос
/ 22 апреля 2011

Необходимо проверить, какие параметры передает nginx при создании загрузки. У меня та же логика, что и у вас. Действие создания, которое я получил, заключается в следующем. Терпите меня, потому что я не могу проверить параметры, которые сейчас передает nginx. Но я думаю, что это не "изображение", а "загрузить"

@photo = @artist.photos.build(params[:upload])

Это мой метод создания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...