Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

228
Visualizações
No anidar archivos en el almacenamiento activo de Rails

Parece que, de manera predeterminada, Rails Active Storage anida sus cargas de archivos por medio de la key active_storage_blob asociada.

Las reglas parecen ser las siguientes para el comportamiento predeterminado. Dentro del <Rails.root>/storage/ :

  • toma los dos primeros caracteres de la key y crea un directorio
    • dentro de ese directorio, tome los siguientes dos caracteres de la key y cree otro directorio
      • almacene el archivo allí, y el nombre del archivo es la key completa

Por ejemplo: donde la key de active_storage_blob asociado de un archivo en particular es: 2HadGpe3G4r5ygdgdfh5534346 , se vería así:

Comportamiento predeterminado de anidamiento de almacenamiento activo de Rails

No quiero este comportamiento de anidamiento. Quiero almacenar los archivos planos dentro del directorio de almacenamiento. Así que simplemente quiero que se vea así:

Comportamiento de almacenamiento activo deseado .

¿Cómo puedo hacer eso? Una búsqueda en Google y una lectura completa de Active Storage Rails Guides no revelaron una solución.

También solo por curiosidad: ¿por qué es este el comportamiento predeterminado?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Buscando en el código de ActiveStorage DiskService, encontré el código que genera la estructura de carpetas. Todo está convenientemente contenido dentro de una sola función :

 def folder_for(key) [ key[0..1], key[2..3] ].join("/") end

Esto facilita la eliminación de la estructura de subcarpetas de dos letras con un simple parche:

 module ActiveStorage class Service::DiskService < Service private def folder_for(key) "" end end end

Es mejor hacer algunas pruebas en este parche, pero por lo que pude ver, debería funcionar bien.

La respuesta a la segunda pregunta no pude determinarla simplemente mirando el código de DiskService. No hay pistas sobre esta estructura de carpetas, por lo que las razones pueden estar en otra parte. Se puede hacer completamente con fines estéticos, para evitar un blob gigante de una sola carpeta en servidores grandes. Tal vez alguien que sepa más pueda comentar.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda