Upload net/ftp kilku plików naraz

Witam,
W swojej aplikacji uploaduje pojedyńcze pliku na serwer przez właśnie net/ftp i działa dobrze
Chciałbym teraz dodać możliwość dodawania kilku naraz więc w form zmieniłem na :

<%= file_field_tag "file", :multiple => true, :name => "file[file]" %>

w controlerze próbowałem na różne sposoby z each dla file ale bez skutku

file = params[:file]
ftp = Net::FTP.new('s4.masternet.pl')
ftp.passive = true
ftp.login(user = "****", passwd = "*******")
ftp.storbinary("STOR " + file.original_filename, StringIO.new(file.read), Net::FTP::DEFAULT_BLOCKSIZE)
ftp.quit()

obejrzałem railscast w którym Ryan użył jQuery File Upload tylko że wszystko było przystosowane do CarrierWave…

można to przystosować do zwykłego net/ftp?

Pozdrawiam

require ‘celluloid’

Celluloid::Future.new { … }

ochnie to w watku nowym, bez blokowania.

poczytaj o celluloid jest chyba jakis screencast

obejrzałem tego screencasta o którym pisałeś
szukałem w internecie przykładów czytałem
jednak wciąż nie wiem jak jedno z drugim połączyć ;/

czy mógłbyś mnie jakoś bardziej nakierować na rozwiązanie ? :slight_smile:
bo tracę nadzieję że uda mi się to zrobić…

Celluloid dziala w dwoch trybach powiedzmy jako aktor (stala ilosc watkow ktore cos robia) oraz Future, pchasz w tlo i zapominasz, nie ma limitow, mozna dobrac sie do wartosci poprzez value.

Masz w repo kilka przykladow na szybko jakis np map.

[1] pry(main)> [1,2,3,4,5].map{|x| sleep 1; x*x} => [1, 4, 9, 16, 25] [2] pry(main)> module Enumera Enumerable Enumerator [2] pry(main)> module Enumerable [2] pry(main)* def pmap(&block) [2] pry(main)* map { |elem| Celluloid::Future.new(elem, &block) }.map(&:value) [2] pry(main)* end [2] pry(main)* end => nil [3] pry(main)> [1,2,3,4,5].pmap{|x| sleep 1; x*x} NameError: uninitialized constant Enumerable::Celluloid from (pry):4:in `block in pmap' [4] pry(main)> require 'celluloid' => true [5] pry(main)> [1,2,3,4,5].pmap{|x| sleep 1; x*x} => [1, 4, 9, 16, 25]
pierwszy zwykly map wykona sie w 5 sekund kazdy po kolej, jeden po drugim, pmap wykona sie na osobnych watkach, wiec calosc zajmie 1 sec