Ho un piccolo Rails 3.2.1 applicazione che utilizza CarrierWave 0.5.8 per il caricamento dei file di S3 (con nebbia)Download e file zippare che sono stati caricati a S3 con CarrierWave
voglio che gli utenti siano in grado di selezionare alcune immagini che vorrebbero scaricare, quindi comprimerle e inviarle via zip. Ecco quello che è venuta in mente:
def generate_zip
#A collection of Photo objects. The Photo object has a PhotoUploader mounted.
photos = Photo.all
tmp_filename = "#{Rails.root}/tmp/" << Time.now.strftime('%Y-%m-%d-%H%M%S-%N').to_s << ".zip"
zip = Zip::ZipFile.open(tmp_filename, Zip::ZipFile::CREATE)
zip.close
photos.each do |photo|
file_to_add = photo.photo.file
zip = Zip::ZipFile.open(tmp_filename)
zip.add("tmp/", file_to_add.path)
zip.close
end
#do the rest.. like send zip or upload file and e-mail link
end
Questo non funziona perché photo.photo.file restituisce un'istanza di CarrierWave :: :: :: bagagli File nebbia invece di un file normale.
EDIT: L'errore questo porta a:
Errno :: ENOENT: No such file or directory - uploads/foto/name.jpg
Ho anche provato il seguente:
Ma questo mi dà un 403. Un po 'di aiuto sarebbe molto apprezzato .. Probabilmente non è così difficile Sto solo facendo Wrong ™
Quale gemma stavi usando? Gemma Rubyzip? –