Pregunta

Quiero extraer los archivos dentro de un archivo ZIP he subido a mi aplicación Rails. Los archivos dentro del archivo ZIP van a ser almacenados en la base de datos.

Quiero abrir el archivo ZIP en mi acción, sin tener que guardar el archivo en una carpeta -. Quiero abrir la corriente multipart / form-data con rubyzip

Parece que ZipFile.open de rubyzip sólo toma un nombre de archivo. - no una corriente IO

¿Qué necesito para cambiar dentro rubyzip, para permitir que abra el archivo zip como una corriente, como esto:

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

Gracias. Joerg

¿Fue útil?

Solución

Uso

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

debería funcionar.

Otros consejos

Voy a darle algunos consejos que usted no ha solicitado.

Yo aconsejaría fuertemente que no se realiza esta operación desde el interior de su acción, porque va a bloquear el proceso de rieles asociado con esa petición HTTP durante el tiempo que se tarda en realizar la extracción. Su interfaz de usuario para que el usuario dejará de responder y si suficientes usuarios hacen esto al mismo tiempo (que se limita el tamaño de carga de archivos, ¿verdad?) Entonces usted tiene efectivamente un denegación de servicio ataque pasando en contra de su aplicación.

  • Iniciar la extracción como un trabajo en segundo plano asíncrona desde dentro de su acción.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top