Hasta ahora todo bien. Hasta que descubro que tengo mal el nombre del autor principal. Pero cuando intento subir el mismo archivo con un nombre corregido, Discourse detecta que el archivo es idéntico en lo demás —supongo que hay algún proceso de hash involucrado— y proporciona una referencia al archivo original, con el nombre de archivo sin cambiar y todavía incorrecto.
Mi solución temporal es cambiar la siguiente configuración a 1 (el valor predeterminado es 48), eliminar todas las referencias en el marcado y esperar a que se complete la eliminación del archivo resultante:
Configuración > Archivos > período de gracia para limpiar subidas huérfanas (horas)
También intenté establecer este parámetro en 0, pero no pareció funcionar. En ese caso, el mensaje de ayuda podría modificarse para que diga: “Para desactivar el período de gracia, establezca en 0”. O, alternativamente, según corresponda: “Para lograr un efecto casi inmediato, establezca en 0”.
No puedo determinar con qué frecuencia se ejecuta realmente este tipo de mantenimiento, pero asumía que era cada hora. ¿Quizás sea diario? Sería útil saberlo también.
¡Gracias de antemano por cualquier ayuda para acelerar este proceso de renombrado de archivos! Sí tengo una solución temporal, pero es bastante torpe y lenta.
No estoy familiarizado con Ruby, pero eso también parece indicar que 0 significa 1. Quizás el consejo del parámetro debería decir también: “Un valor de 0 se interpreta como 1” o algo similar. Especialmente porque el cero a menudo tiene el significado especial de desactivar en otras circunstancias. Gracias @neounix.
Creo que lo que quieres hacer es actualizar el registro de carga en la consola de Rails, si tienes tu propia instalación. Dudo que haya una forma de hacerlo mediante la API, pero no lo he comprobado.
Espera. No estoy muy seguro de lo que estás intentando hacer. ¿Se trata de cambiar el nombre que las personas ven en las publicaciones en las que se han subido? Si es así, quizás quieras hacer algo como
Intenté regenerar una publicación con esa carga y no pasó nada.
EDIT:
def rename_upload(old_name, new_name)
u=Upload.find_by(original_filename: old_name)
u.original_filename=new_name
u.save
end
Si pegas eso, puedes ejecutar
rename_upload('name.pdf','better-name.pdf')
Esto solucionará el problema para que las descargas tengan el nombre de archivo mejorado.
En mi vida anterior como académico, tenía mi forma específica de nombrar mis PDFs, que era diferente a la de cualquier otra persona; estoy bastante seguro de que mi esposa tiene la suya propia. Mi suposición es que a nadie le gustarán tus nombres de archivo, incluso cuando los pongas “correctamente”.
No era eso lo que intentaba hacer. La cadena leadauthor era parte del nombre del archivo. Nada más. Pero cuando revisé el nombre del archivo (porque mi comprensión de las convenciones de apellidos para académicos en español es muy limitada) e intenté subir el archivo renombrado, Discourse notó que ya tenía un archivo idéntico en su manifiesto y cambió al destino y al nombre de archivo originales. Supongo que eso podría considerarse una característica. No fue hasta que eliminé ese archivo de la base de datos del sitio que pude subir el que tenía el nombre corregido. Agradezco mucho tu ayuda e interés, @pfaffman.
Después de probarlo en mi instancia, puedes cambiar el nombre del archivo en [filename.pdf|attachment](upload://filehash.pdf) y, aunque en la publicación se muestra filename.pdf, al descargarlo sigue apareciendo con el nombre original. Supongo que es lo mismo que él quiere: renombrar el nombre del archivo que se usa al descargarlo.
No es algo crítico, pero también me gustaría poder renombrar las subidas.
Oh. Vale. Así que las tres líneas de código de Rails hacen lo que quieres. No cambia lo que ves en las publicaciones, pero si haces clic en el archivo, se guarda con el nombre “better-name.pdf”.