Como faço para excluir o arquivo do avatar do usuário?

Esse é o objetivo que não faço ideia de como alcançar. Como um engenheiro reverso de iOS, minha ideia é que, se eu souber no código-fonte como/onde o servidor envia essa imagem, posso rastrear e ver onde o servidor carrega essa imagem localmente. Mas eu leio Ruby como se fosse pseudocódigo, então localizar onde o servidor envia essa imagem se torna uma tarefa enorme para mim :sob: Isso deveria ser muito mais fácil para alguém que esteja familiarizado com o código-fonte, no entanto

Em discourse/app/models/upload.rb at main · discourse/discourse · GitHub

Vi a tabela uploads, que armazena todos os uploads de um usuário. Para o usuário Baal998, cujo ID é 1637, executei SELECT * FROM uploads WHERE user_id = '1637'; e o resultado foi:

  id  | user_id | original_filename | filesize | width | height |                                     url                                     |         created_at         |         updated_at         |                   sha1                   | origin | retain_hours | extension | thumbnail_width | thumbnail_height | etag | secure | access_control_post_id | original_sha1 | animated | verified | verification_status 
------+---------+-------------------+----------+-------+--------+-----------------------------------------------------------------------------+----------------------------+----------------------------+------------------------------------------+--------+--------------+-----------+-----------------+------------------+------+--------+------------------------+---------------+----------+----------+---------------------
 2210 |    1637 | 2.pic.jpg         |    60610 |       |        | /uploads/default/original/2X/c/cb2188eaeecc3a648f021fa00da4734bd60ca183.jpg | 2016-08-08 09:37:13.937306 | 2018-01-05 02:38:49.498264 | cb2188eaeecc3a648f021fa00da4734bd60ca183 |        |              | jpg       |                 |                  |      | f      |                        |               |          |          |                   1
(1 row)

O que é o mesmo que executar Upload.find(user_avatar.custom_upload_id).url com Rails.

Minha suposição é que, após o usuário fazer o upload do avatar, o Discourse fará algo com o arquivo original do avatar e armazenará os arquivos otimizados em outro lugar?

Na tabela optimized_images, esta linha parecia suspeita

  id   |                   sha1                   | extension | width | height | upload_id |                                          url                                           | filesize | etag | version |         created_at         |         updated_at         
-------+------------------------------------------+-----------+-------+--------+-----------+----------------------------------------------------------------------------------------+----------+------+---------+----------------------------+----------------------------
 49538 | e6dc9b0d6c18f2a4c3c0d2027534d01cfc89c84e | .jpg      |   135 |    135 |      2210 | /uploads/default/optimized/2X/c/cb2188eaeecc3a648f021fa00da4734bd60ca183_2_135x135.jpg |    10968 |      |       2 | 2016-08-08 09:37:13.937306 | 2016-08-08 09:37:13.937306
(1 row)

O sha1 e o filesize correspondem a https://iosre.com/user_avatar/iosre.com/baal998/135/2210_2.png , mas no servidor esse arquivo não existe.

root@iosre:/var/discourse/shared/standalone# ls /uploads/default/optimized/2X/c/cb2188eaeecc3a648f021fa00da4734bd60ca183_2_135x135.jpg
ls: não foi possível acessar /uploads/default/optimized/2X/c/cb2188eaeecc3a648f021fa00da4734bd60ca183_2_135x135.jpg: Arquivo ou diretório inexistente

Não faço ideia do que estava errado.

Problema resolvido:

Alguém do meu fórum me disse que essa imagem de avatar pode estar armazenada no cache do nginx em proxy_cache_path, que geralmente é /var/nginx/cache, mas não consegui encontrar nem proxy_cache_path nem /var/nginx/cache.

Fui inspirado por ele a entrar no aplicativo Discourse via launcher enter app e, em seguida, encontrei o cache do nginx:

root@iosre:/var/discourse/shared# /var/discourse/launcher enter app
WARNING: Docker version 17.05.0-ce deprecated, recommend upgrade to 17.06.2 or newer.
root@iosre-app:/var/www/discourse# cd /var/nginx/cache
root@iosre-app:/var/nginx/cache# ls
0  1  2  3  4  5  6  7	8  9  a  b  c  d  e  f
root@iosre-app:/var/nginx/cache# 

E excluí todos os caches:

root@iosre-app:/var/nginx/cache# ls
root@iosre-app:/var/nginx/cache# 

A imagem desapareceu.