Pesquisar anexos por nome de armazenamento

Olá, é possível pesquisar arquivos no armazenamento por seus nomes de armazenamento?

Quero dizer, encontrar não pelo nome do arquivo, mas pelo seu nome baseado em hash que está relacionado ao anexo. Por exemplo, como administrador, explorei um backup de fórum e encontrei um anexo grande. Não sei o nome original do arquivo para poder selecioná-lo rapidamente no fórum para explorar.

Posso pesquisar por nome de arquivo e vejo seu nome de armazenamento:

Infelizmente, a pesquisa por nome de armazenamento não funciona:

Existe alguma maneira de operar esses anexos de forma amigável? Não quero excluí-los do armazenamento até explorar seu conteúdo (na maioria dos casos, gostaria de limpar, aparar o conteúdo e reempacotá-los). Provavelmente algum método usando o Explorador de Dados existe?

O que eu acho que você precisa é encontrar o sha1 usando um dos métodos do console:

Upload.sha1_from_short_url
Upload.sha1_from_short_path
Upload.sha1_from_base62_encoded

A lógica do qual você pode reproduzir em outro lugar, se precisar. Com esse hash sha1 você pode procurar na tabela uploads pelo valor, ou usar no console:

Upload.find_by(sha1: sha_to_find)

No seu caso, se eu digitei corretamente:

[1] pry(main)> Upload.sha1_from_base62_encoded 'yl9oPeFdXA4DSdL4chS0sznm5zF'
=> "f0ae01b37fe5db52f1935f6247dff639f77c5117"
3 curtidas

Hm, muito interessante, muito obrigado! :handshake:

P.S. para aqueles que vierem a este tópico a partir da pesquisa:
Como executar o console do Rails (para iniciar uma sessão Pry):

sudo /var/discourse/launcher enter app
rails c
pry(main)> aqui você pode executar os comandos postados acima

Também SQL para o banco de dados:

SELECT filesize, original_filename, sha1 FROM uploads WHERE filesize > 3000000 order BY filesize desc
2 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.