Использование фоновых заданий для загрузки файлов - PullRequest
0 голосов
/ 15 января 2012

Загрузка файлов на мой сервер займет много времени, возможно ли загрузить файл и позволить фоновому процессу принять загрузку после проверки, чтобы это не замедляло работу приложения, и как я могу это сделать.

мой файловый контроллер такой

@file = File.new(params[:file])
      respond_to do |format|
      if @file.save
        format.html { redirect_to @file, notice: 'file was successfully uploaded.' }
        format.json { render json: @file, status: :created, location: @file }
        format.js
      else
        format.html { render action: "new" }
        format.json { render json: @file.errors, status: :unprocessable_entity }
        format.js
      end
    end
end

модель файла выглядит так

 has_attached_file :file,
    :path => ":rails_root/public/system/:attachment/:id/:style/:normalized_file_file_name",
    :url => "/system/:attachment/:id/:style/:normalized_file_file_name"
  validates_attachment_content_type :file, :content_type => ['audio/mp3', 'audio/mpeg', 'audio/mid', 'audio/x-wav']

  Paperclip.interpolates :normalized_file_file_name do |attachment, style|
    attachment.instance.normalized_file_file_name
  end

  def normalized_mp3_file_name
    "#{self.mp3_file_name.gsub( /[^a-zA-Z0-9_\.]/, ' ')}"
  end

где бы я использовал драгоценность отложенного задания и как

1 Ответ

0 голосов
/ 15 января 2012

Поскольку ваши файлы имеют большой размер, загрузка определенно займет много времени. А фоновая обработка на стороне клиента может не произойти, потому что вам нужно какое-то решение, которое могло бы загрузить файл, не занимая много времени или не опоздавшего ответа. Ответ на эту проблему может помочь вам в этом, используя jquery для загрузки ваших файлов, и вы можете провести проверку на стороне клиента, используя также jquery (что не очень хорошо, но да, это будет соответствовать цели).

Я использовал это - http://blueimp.github.com/jQuery-File-Upload/ для моего проекта. Но есть и более доступные по вашему желанию. Отметьте их, если хотите сюда - http://creativefan.com/10-ajax-jquery-file-uploaders/

Надеюсь, это поможет вам решить эту проблему.

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