2012-05-03 15 views
7

ecco la mia situazione.ogni volta che si spinge in heroku, le immagini non sono mostrate, graffetta

Stavo usando paperclip per consentire all'utente di caricare le immagini. Ha funzionato bene e tutto andava bene. Quindi, l'ho spinto a heroku. Per il momment, posso vedere tutte le mie immagini che sono state appena caricate dagli utenti. Comunque, ogni volta fai un nuovo commit e spingo di nuovo su heroku, tutte le mie immagini precedenti sparite. Sembra che non abbia più il file, non posso caricarlo.

Quindi, ecco cosa ho pensato: È sempre stato che ho inviato al server heroku, il file di immagini che era in locale è stato caricato sul server heroku?

Ho fatto ricerche per il mio problema e non capisco cosa abbiano effettivamente detto su heroku e non so è lo stesso problema con me.

Heroku ha un file system di sola lettura. Ciò significa che Paperclip non può salvare i file caricati in qualsiasi posto all'interno di Heroku.

Se si desidera caricare file su un'applicazione ospitata su Heroku, è necessario archiviare i file come blob binari nel database oppure è necessario utilizzare un servizio separato per archiviare i file. Se stai cercando un servizio separato, Paperclip ha il supporto integrato per l'integrazione con Amazon S3.

Ho scoperto che Amazon S3 ha bisogno di una carta di credito per registrarsi, se non ho la carta di credito, quindi non posso usare i loro servizi ??

Eventuali consigli di dettaglio e spiegazione è apprezzato Ringraziamenti si

risposta

5

Amazon non è un dispositivo gratuito, è necessario dare il vostro numero di carta di credito per usarlo. Tuttavia paghi solo quello che usi ma non è costoso. Ad esempio, per i miei siti Web, il mese scorso ho pagato $ 2,46 per 15 GB di spazio di archiviazione e ho pagato $ 1,90 per 16 GB di trasferimento dati.

Per utilizzare S3 con graffetta, è necessario aggiungere gem 'aws-s3' al vostro Gemfile

Dopodiché è necessario aggiungere config/s3.yml vostre attività delle credenziali, ad esempio:

production: 
    access_key_id: AAAAAAAAAAAAAAAAAA 
    secret_access_key: BBBBBBBBBBBBBBBBBBBBBBBBBBB 
    bucket: assets.my-bucket 

Poi ho un modello che memorizzare la mia le attività, ad esempio:

class Asset 
    has_attached_file :asset, 
    :styles => { :thumb => "60x60#", :large => "700x330#"}, 
    :storage => :s3, 
    :s3_credentials => "#{Rails.root}/config/s3.yml", 
    :path => "/images/:id/:style.:extension" 
    validates_attachment_content_type :asset, :content_type => ['image/gif', 'image/jpeg', 'image/png', 'image/x-ms-bmp'] 
end 

spero che aiuta

+0

sì, ho saputo di questa cosa, puoi fornire più problemi sul mio problema che sto affrontando ?? izit deve essere risolutivo utilizzare un altro servizio come Amazon s3? –

+0

È possibile utilizzare wathever anziché S3 ma non è possibile caricare gli asset su heroku. Quindi puoi usare un server dedicato o un altro sistema di archiviazione remota, ma probabilmente dovrai pagare per questo. –

+0

oic ... così che ogni volta che ho spinto su heroku, l'immagine che ho caricato sul server heroku sarà interessata? –

Problemi correlati