Domanda

Voglio estrarre i file all'interno di un file ZIP ho caricato al mio Rails app. I file all'interno del file ZIP stanno per essere memorizzati nel database.

voglio aprire il file ZIP nella mia azione, senza dover prima salvare il file in una cartella -. Voglio aprire il flusso multipart / form-data con rubyzip

Sembra che ZipFile.open di rubyzip richiede solo un nome di file -. Non un flusso IO

Di cosa ho bisogno di cambiare entro rubyzip, per permettere a me di aprire il file zip come un flusso, in questo modo:

Zip::ZipFile.open(params["zip_file"]) do |zip_file|
 ...
end

Grazie. Joerg

È stato utile?

Soluzione

con

Zip::ZipFile.open(params["zip_file"].path) do |zip_file|
 ...
end

dovrebbe funzionare.

Altri suggerimenti

ho intenzione di darvi alcuni consigli che non avete chiesto.

vi consiglio caldamente che non si esegue questa operazione da dentro la vostra azione, perché sarà bloccare il processo di Rails associato a tale richiesta HTTP per tutto il tempo necessario per eseguire l'estrazione. L'interfaccia utente per l'utente diventerà non risponde e se un numero sufficiente gli utenti fanno contemporaneamente (si sta limitando la dimensione di caricamento file, giusto?) Allora hai effettivamente ottenuto un Denial of Service attacco in corso contro la vostra applicazione.

  • Iniziare l'estrazione come un processo in background asincrono da dentro la vostra azione.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top