Sto utilizzando gemme paperclip e aws-sdk in un'app Rails 4.Non riesco a ottenere Paperclip per impostare correttamente i miei URL S3
mi definiscono l'opzione: percorso nella mia paperclip.rb configurazione, senza: l'opzione url:
Paperclip::Attachment.default_options[:path] = ":class/:attachment/:id_partition/:style/:filename"
Si risparmia le mie immagini caricate come tale:
All fine, viene salvato in S3. Tuttavia, rifiuta di farmi leggere le immagini per la visualizzazione, ad es. = Profile.avatar.url (: medio). Quando vado a quell'URL nel browser mi dice di riformattarlo con il nome del bucket come dominio. Come:
OK, non è un problema. Vado a quell'URL, posso vedere la mia immagine. Così ora ho bisogno di capire come ottenere Paperclip per formattare automaticamente gli URL come questo. Ho letto nella documentazione Paperclip che basta impostare
Paperclip::Attachment.default_options[:url] = ":s3_domain_url"
E che devo anche impostare il: parametro di percorso o mi limiterò a ottenere una graffetta :: Errori :: InfiniteInterpolationError.
così mi sono messo il mio file di configurazione con entrambi abbinati:
Paperclip::Attachment.default_options[:path] = ":class/:attachment/:id_partition/:style/:filename"
Paperclip::Attachment.default_options[:url] = ":s3_domain_url"
Non funziona ... cerco la demolizione del paperclip.rb e la messa in config/ambienti/* Ma non importa quello che faccio, salva ancora gli URL senza il dominio con il nome del bucket nel percorso.
Quindi due domande:
1) Come posso ottenere Paperclip per formattare automaticamente gli URL salvati in stile dominio?
2) O ancora meglio, come posso ottenere S3 per accettare gli URL di stile non di dominio, quello che Paperclip sta generando attualmente?
EDIT
Quindi, se aggiungo nell'opzione s3_host_name allora salva lo stile URL dominio. Quindi devo avere tutti e 3:
Paperclip::Attachment.default_options[:url] = ':s3_domain_url'
Paperclip::Attachment.default_options[:path] = ":class/:attachment/:id_partition/:style/:filename"
Paperclip::Attachment.default_options[:s3_host_name] = 's3-us-west-2.amazonaws.com'
E salvo il mio URL del modello in questo modo:
ma ora vedo che ho una codifica% 3F (" ? ") nell'URL che lo incasina.
Hai creato un criterio bucket in S3? –