Até aqui tudo bem. Até que descubro que o nome do autor principal está errado. Mas, quando tento fazer o upload do mesmo arquivo com um nome corrigido, o Discourse percebe que o arquivo é idêntico — imagino que haja algum tipo de hash envolvido — e fornece uma referência ao arquivo original, mantendo o nome inalterado e ainda incorreto.
Minha solução alternativa é alterar a seguinte configuração para 1 (o padrão é 48), remover todas as referências na marcação e aguardar até que a exclusão do arquivo ocorra:
Settings > Files > clean orphan uploads grace period hours
Também tentei definir esse parâmetro específico como 0, mas isso não parece ter funcionado. Nesse caso, a dica de ferramenta poderia ser melhor modificada para: “Para desativar o período de carência, defina como 0”. Ou, alternativamente, conforme apropriado: “Para ativar um efeito quase imediato, defina como 0”.
Não consigo saber com que frequência esse tipo de manutenção é realmente executado, mas eu presumia que fosse a cada hora? Talvez seja diariamente? Seria útil saber disso também.
Agradeço desde já qualquer ajuda sobre como acelerar esse processo de renomeação de arquivos! Tenho uma solução alternativa, mas ela é bastante desajeitada e lenta.
Não sendo familiar com Ruby, mas isso também parece que 0 significa 1. Talvez a dica do parâmetro também devesse dizer: “Um valor de 0 é interpretado como 1.” ou algo similar. Especialmente porque o zero frequentemente tem o significado especial de desativar em outras circunstâncias. Obrigado @neounix.
Acho que o que você quer fazer é atualizar o registro de upload no console do Rails, se você tiver uma instalação própria. Duvido que exista uma maneira de fazer isso com a API, mas não verifiquei.
Espere. Não tenho certeza do que você está tentando fazer. É para alterar o nome que as pessoas veem nos posts em que são carregados? Se for esse o caso, talvez você queira fazer algo como
Tentei reconstruir um post com esse upload e nada aconteceu.
EDIT:
def rename_upload(old_name, new_name)
u=Upload.find_by(original_filename: old_name)
u.original_filename=new_name
u.save
end
Se você colar isso, poderá executar
rename_upload('name.pdf','better-name.pdf')
Isso corrigirá o problema para que os downloads recebam o nome de arquivo melhor.
Na minha vida anterior como acadêmico, eu tinha minha maneira específica de nomear meus PDFs, diferente de qualquer outra pessoa; tenho certeza de que minha esposa tem a dela. Acredito que ninguém vai gostar dos seus nomes de arquivo, mesmo quando você os colocar “certos”.
Não era isso que eu estava tentando fazer. A string leadauthor fazia parte do nome do arquivo. Só isso. Mas, quando revisei o nome do arquivo (porque meu entendimento das convenções de nomenclatura familiar para acadêmicos espanhóis é muito limitado) e tentei fazer o upload do arquivo renomeado, o Discourse percebeu que havia um arquivo idêntico em seu manifesto e trocou para o nome de arquivo e destino originais. Acho que isso poderia ser considerado um recurso? Só consegui fazer o upload do arquivo com o nome corrigido depois de remover aquele arquivo do banco de dados do site. Agradeço muito sua ajuda e interesse, @pfaffman.
Após testar na minha instância, você pode alterar o nome do arquivo em [filename.pdf|attachment](upload://filehash.pdf) e, embora o post mostre filename.pdf, o download ainda ocorre com o nome original. Acredito que seja a mesma coisa que ele deseja: renomear o nome do arquivo usado no momento do download.
Não é algo crítico, mas também gostaria de poder renomear os uploads.
Oh. Ok. Então as três linhas de código Rails fazem o que você quer. Isso não altera o que você vê nas postagens, mas se você clicar no arquivo, ele será salvo com o nome “better-name.pdf”.