Fin qui tutto bene. Fino a quando non scopro che ho sbagliato il nome dell’autore principale. Ma quando provo a ricaricare lo stesso file con un nome corretto, Discourse rileva che il file è altrimenti identico — immagino ci sia qualche meccanismo di hashing in atto — e fornisce un riferimento al file originale, mantenendo il nome invariato e quindi ancora errato.
La mia soluzione temporanea è modificare la seguente impostazione in 1 (il valore predefinito è 48), rimuovere tutti i riferimenti nel markup e attendere che avvenga l’eliminazione del file risultante:
Impostazioni > File > periodo di grazia per la pulizia dei caricamenti orfani (ore)
Ho anche provato a impostare questo parametro specifico su 0, ma non sembra aver funzionato. In tal caso, il suggerimento (tooltip) potrebbe essere modificato per recitare: “Per disabilitare il periodo di grazia, impostare a 0”. O, in alternativa, come più opportuno: “Per attivare un effetto quasi immediato, impostare a 0”.
Non riesco a capire con quale frequenza venga effettivamente eseguita questa manutenzione, ma ipotizzo sia ogni ora? Forse è giornaliera? Anche questo sarebbe utile sapere.
Grazie in anticipo per qualsiasi aiuto su come accelerare questo processo di rinomina dei file! Ho una soluzione temporanea, ma è piuttosto goffa e lenta.
Non essendo familiare con Ruby, ma anche questo sembra che 0 significhi 1. Forse il suggerimento sul parametro dovrebbe anche recitare: “Un valore di 0 viene interpretato come 1.” o qualcosa di simile. Soprattutto perché lo zero spesso ha il significato speciale di disabilitare in altre circostanze. Grazie @neounix.
Credo che ciò che vuoi fare sia aggiornare il record di caricamento dalla console di Rails, se sei in self-hosted. Dubito che esista un modo per farlo tramite l’API, ma non ho ancora controllato.
Aspetta. Non sono sicuro di capire cosa stai cercando di fare. Si tratta di cambiare il nome che le persone vedono nei post in cui sono stati caricati? Se è così, forse vorresti fare qualcosa come
rake posts:remap["old-name.pdf","newname.pdf"]
Come descritto in Sostituisci una stringa in tutti i post. Credo che, per le tue esigenze, il nome originale del file nel modello Upload non sia davvero importante.
Ho provato a rigenerare un post con quel caricamento e non è successo nulla.
MODIFICA:
def rename_upload(old_name, new_name)
u=Upload.find_by(original_filename: old_name)
u.original_filename=new_name
u.save
end
Se incolli questo codice, puoi eseguire
rename_upload('name.pdf','better-name.pdf')
Così risolverai il problema in modo che i download abbiano il nome di file migliore.
Nella mia vita passata come accademico, avevo il mio modo specifico di nominare i miei PDF, diverso da quello di chiunque altro; sono quasi sicuro che anche mia moglie abbia il suo. Immagino che a nessuno piaceranno i tuoi nomi di file, anche quando li avrai “corretti”.
Non era quello che intendevo fare. La stringa leadauthor faceva parte del nome del file. Nient’altro. Ma quando ho modificato il nome del file (perché la mia conoscenza delle convenzioni di denominazione familiare per gli accademici spagnoli è molto limitata) e ho provato a caricare il file rinominato, Discourse ha notato che ne aveva uno identico nel proprio manifesto e ha sostituito con il file e il nome di destinazione originali. Immagino che si possa considerare una funzionalità? Solo dopo aver eliminato quel file dal database del sito sono riuscito a caricare quello con il nome corretto. Apprezzo davvero molto il tuo aiuto e il tuo interesse, @pfaffman.
Dopo aver testato nella mia istanza, puoi cambiare il nome del file in [filename.pdf|attachment](upload://filehash.pdf) e, anche se nel post viene mostrato filename.pdf, il file viene scaricato con il nome originale. Immagino che sia la stessa cosa che desidera: rinominare il nome del file utilizzato durante il download.
Non è davvero critico, ma vorrei anche poter rinominare i file caricati.
Oh. Ok. Quindi le tre righe di codice Rails fanno ciò che desideri. Non cambiano ciò che vedi nei post, ma se fai clic sul file, viene salvato con il nome “better-name.pdf”.