Sto usando portante wave, rail e amazon s3. Ogni volta che salva un'immagine, l'immagine si presenta in s3 e posso vederlo nella console di gestione con il nome in questo modo:amazon s3 e carrierwave nome immagine casuale nel bucket non corrisponde nel database
https://s3.amazonaws.com/bucket-name/ uploads/images/10/888fdcfdd6f0eeea_1351389576.png
Ma nel modello, il nome è questo:
https://bucket-name.s3.amazonaws.com/ uploads/images/10/b3ca26c2baa3b857_1351389576.png
Prima di tutto, perché il nome casuale è diverso? Sto generando nel uploader in questo modo:
def filename
if original_filename
"#{SecureRandom::hex(8)}_#{Time.now.to_i}#{File.extname(original_filename).downcase}"
end
end
So che non sta generando una stringa casuale ogni chiamata perché l'URL sbagliato nel modello è coerente e salvato. Da qualche parte nel processo ne deve essere generato uno nuovo per salvare nel modello dopo che il nome dell'immagine è stato salvato e inviato a Amazon s3. Strano.
Inoltre, posso avere l'url corrisponde a quello in termini di s3/bucket anziché bucket.s3 senza utilizzare un'espressione regolare? C'è un'opzione in carrierwave o qualcosa del genere?
Apprezzo la mancia che non è stata salvata. Avevo solo bisogno di salvarlo – AJcodez