Come passare ulteriori opzioni di conversione in graffetta su Heroku?
-
20-09-2019 - |
Domanda
class User < ActiveRecord::Base
has_attached_file :photo, :styles => { :square => "100%", :large => "100%" },
:convert_options => {
:square => "-auto-orient -geometry 70X70#",
:large => "-auto-orient -geometry X300" },
:storage => :s3,
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:path => ":attachment/:id/:style.:extension",
:bucket => 'mybucket'
validates_attachment_size :photo,
:less_than => 5.megabyte
end
Funziona benissimo sul computer locale, ma mi dà un errore su Heroku: There was an error processing the thumbnail for stream.20143
Il fatto è che voglio orientare automaticamente le foto prima di ridimensionarle, in modo che vengano ridimensionate correttamente.
L'unica variante funzionante ora (grazie a Jonnii) è il ridimensionamento senza orientamento automatico:
...
as_attached_file :photo, :styles => { :square => "70X70#", :large => "X300" },
:storage => :s3,
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:path => ":attachment/:id/:style.:extension",
:bucket => 'mybucket'
...
Come passare ulteriori opzioni di conversione in graffetta su Heroku?
AGGIORNAMENTO
Scopro il problema nell'opzione "-auto-orient".Sembra che questa opzione sia interrotta nella versione di ImageMagick utilizzata da Heroku.Ho creato un processore di immagini personalizzato per graffetta ereditato dalla miniatura standard di graffetta:
module Paperclip
class Ao < Thumbnail
def transformation_command
super + " -auto-orient"
end
end
end
Funziona perfettamente sul computer locale, ma fallisce su Heroku.
Soluzione
Queste sono le dimensioni che utilizzo.Funzionano tutti bene su Heroku:
SIZES = {
:original => "640x480>",
:thumb => "150x150#",
:mini => "60x60#",
:micro => "30x30#"
}
Assicurati che la tua versione gem di graffetta per fogli è lo stesso di Heroku.Puoi specificare la versione specifica della gemma nel tuo file .gems
file e nel tuo environment.rb
per assicurarsi che siano allineati.
Non sono sicuro esattamente del motivo per cui il tuo convert_options
stanno causando problemi, ma se ricordo bene paperclip utilizza direttamente ImageScience e le opzioni scelte potrebbero essere incompatibili con il file system heroku di sola lettura.
Se questo è fondamentale e hai bisogno di una risposta adesso, aumenterei un ticket di supporto su Heroku.Se ricevi una risposta assicurati di postarla qui!