Cargue un archivo en un directorio fuera de los carriles de la raíz con attachment_fu

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

  •  21-09-2019
  •  | 
  •  

Pregunta

Estoy tratando de utilizar attachment_fu para subir archivos a un directorio fuera de la RAILS_ROOT. Quiero que los archivos que se guardan en ~/APP_NAME/uploads/ para que puedan ser aprobados / rechazados antes de convertirse a disposición del público. He intentado lo siguiente configuración para has_attachment:

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

Por desgracia, esta configuración simplemente crea la estructura de directorios en ~/APP_NAME/uploads/ RAILS_ROOT. Cualquier forma de salvar el exterior archivo de RAILS_ROOT?

¿Fue útil?

Solución 2

He encontrado un método alternativo que me viene mejor que usar rutas relativas. He añadido un método llamado full_filename a mi clase de apego:

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

Otros consejos

Esto probablemente no es un problema Accesorio-Fu, sino más bien cómo las manijas de Ruby / S de archivos, así como la forma en archivos se almacenan en Unix.

Así, por ejemplo, si su aplicación en la vida, por ejemplo, ~ / Usuarios / ron / APP_NAME

Si cambia el código anterior:

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

Para:

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

Los archivos se almacenan en una carpeta llamada "subidos" en ~ / Usuarios / ron / archivos. El "../" significa un directorio por encima de la corriente de raíz rieles. Si desea subir dos niveles, sería "../../" y así sucesivamente.

Pero eso sólo direcciones de navegación jerárquica. Si quería decir Accesorio-Fu para almacenar archivos en un directorio hardcoded en su sistema de archivos, usted podría darle una ruta de archivo como "/ Usuarios ~ / ron / APP_NAME / uploads", pero tenga en cuenta hardcoding en una ruta de archivo de esta forma es frágil y podría ser un punto de dolor en el futuro debe a sus necesidades de almacenamiento de archivos cambio.

Espero que ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top