Il caricamento di un file in una directory al di fuori di rotaie ROOT con attachment_fu

StackOverflow https://stackoverflow.com/questions/1387577

  •  21-09-2019
  •  | 
  •  

Domanda

Sto cercando di utilizzare attachment_fu per caricare i file in una directory al di fuori della RAILS_ROOT. Voglio che i file siano salvati a ~/APP_NAME/uploads/ in modo che possano essere approvati / respinti prima di diventare disponibili al pubblico. Ho provato la seguente configurazione per has_attachment:

has_attachment  :storage => :file_system,
                :path_prefix => "~/APP_NAME/uploads/",
                :max_size => 5.megabytes

Purtroppo, questa configurazione crea semplicemente la struttura delle directory ~/APP_NAME/uploads/ in RAILS_ROOT. Un modo per salvare il file al di fuori della RAILS_ROOT?

È stato utile?

Soluzione 2

Ho trovato un metodo alternativo che si adatta meglio di me utilizzando percorsi relativi. Ho aggiunto un metodo chiamato full_filename alla mia classe di attaccamento:

class attachment < ActiveRecord::Base
    def full_filename
       return  "/Users/ron/attachments/#{id}.#{file_format}"
    end
end

Altri suggerimenti

Questo probabilmente non è un problema Allegato-Fu, ma piuttosto come Rubino gestisce file di I / O e come file sono memorizzati in Unix.

Così, per esempio, se la vostra applicazione vive, per esempio, ~ / Users / Ron / APP_NAME

Se si modifica il codice di cui sopra:

:path_prefix => "~/APP_NAME/uploads/"

A:

:path_prefix => "../#{RAILS_ROOT}/uploads"

I file saranno memorizzati in una cartella chiamata "arrivi" in ~ / Users / Ron / uploads. Il "../" significa una directory sopra la radice Rails corrente. Se si vuole andare su due directory, che sarebbe "../../" e così via.

Ma questo riguarda solo la navigazione gerarchica. Se si voleva dire Allegato-Fu per memorizzare i file in una directory hardcoded nel vostro filesystem, si potrebbe dare un percorso di file come ad esempio "~ / Users / Ron / APP_NAME / arrivi", ma di tenere presente hardcoding in un percorso di file presente modo è fragile e potrebbe essere un punto di dolore in futuro dovrebbero le vostre esigenze di archiviazione di file cambiare.

La speranza che aiuta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top