Hola gentes, para un proyecto necesito poder descargar todas las fotos
asociadas (attachment_fu) a un producto en un único fichero .zip que
las contenga a todas.
Hasta ahora tengo un método que coge todas las fotos de un producto y
las copia a una carpeta /public/zipped/id_producto
/public/zipped/id_producto/foto1.jpg
/public/zipped/id_producto/foto2.jpg
/public/zipped/id_producto/foto3.jpg
Ahora me gustaría comprimir esa carpeta para que se quede en
/public/zipped/id_producto.zip
Es importante que sea .zip y no .tar.gz, esto es, para que lo puedan
abrir esos usuarios de windows que previsiblemente visitarán la web.

Gracias!
Buenas,
El Thursday 20 March 2008 22:32:05 Jaime I.
escribió:> Hola gentes, para un proyecto necesito poder descargar todas las fotos
asociadas (attachment_fu) a un producto en un único fichero .zip que
las contenga a todas.
[…]
gem install rubyzip. No lo he usado pero leyendo la documentación parece
ser
lo que buscas.
Ciao
Jaime,
Se hace de la siguiente manera. (Con la gem rubyzip instalada)
require ‘rubygems’
require ‘zip/zip’
require ‘zip/zipfilesystem’
Zip::ZipFile.open(“producto_1.zip”, Zip::ZipFile::CREATE) do |zipfile|
zipfile.mkdir(“producto_1”)
zipfile.add(“producto_1/foto_1.jpg”, “foto_1.jpg”)
end
Funciona porque lo he probado … 
Un saludo,
Francesc
On Mar 20, 2008, at 10:32 PM, Jaime I. wrote:
Jaime I.
http://jaimeiniesta.com - http://railes.net - http://pagerankalert.com
Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es
–
Not sent from my iPhone
Yo lo haria “on demand” … y cacheandolo de manera que solo generaré
esos archivos que el usuario pida. Eso si, cuando el usuario actualize
el producto se debe descachear.
Un saludo,
Francesc
On Mar 21, 2008, at 10:23 AM, Jaime I. wrote:
2.- una rake task automatizada por cron para actualizar todos los zips
require ‘zip/zipfilesystem’
Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es
–
Not sent from my iPhone
Gracias Antonio y Francesc…
Al final lo estoy haciendo con llamadas al sistema, para usar el zip
del servidor. ¿Qué creéis que es preferible? Creo que el zip de
sistema será más rápido que la gema, no?
Por otro lado, ¿dónde creéis que es mejor hacer este zip?
1.- “on demand” cuando el visitante pulse el enlace “descargar zip”
2.- una rake task automatizada por cron para actualizar todos los zips
y dejarlos preparados para descarga
3.- en el after_save del producto para que cuando se actualice desde
el back, se genere el nuevo zip
Yo creo que lo mejor es la 3; la 1 puede consumir muchos recursos y la
2 puede hacer trabajar al servidor innecesariamente y además tener los
zips desactualizados entre el cambio y la ejecución programada.
Jaime
2008/3/21, Francesc E. [email protected]: