Problema com Oneboxing de uma imagem de um domínio específico

Alguém pode me dar uma luz sobre o que pode estar acontecendo aqui? :thinking:

Tenho duas imagens. Elas são idênticas. A única diferença é o nome do domínio.

Uma imagem se recusa a fazer onebox no meu Discourse rodando 3.3.0.beta2-dev (7a083daf27), a outra imagem faz onebox sem problemas.

Imagem um: https://dronescene.co.uk/images/uploads/temporiginal/test11.png

Imagem dois: https://dev.dronescene.co.uk/images/uploads/temporiginal/test11.png

Enquanto coçava a cabeça e tentava descobrir qual poderia ser o problema, notei que a URL do onebox está anexando alguns parâmetros extras no final da URL:

Acho que isso é uma pista falsa, no entanto :thinking:

Se eu visualizo ambas as imagens diretamente em uma aba do navegador e olho os cabeçalhos de resposta HTTP na aba de rede do console do navegador, não vejo nenhuma diferença entre as duas.

Não há erros nos meus logs do Discourse.

Será que apliquei alguma configuração específica de domínio no meu Discourse que já esqueci? :thinking:

O que mais poderia causar o Onebox a lançar um HTTP/404 quando a imagem está realmente lá? :thinking:

Por onde posso começar a depurar por que uma URL funciona e a outra não? :thinking:

Se for relevante, ambos os domínios são proxyados via Cloudflare - mas todas as configurações lá também são idênticas.

Não é um dos principais usos do Cloudflare bloquear bots de solicitar arquivos do seu site? Parece que está funcionando como esperado :laughing:

Você deve verificar sua configuração do Cloudflare, haverá uma maneira de desativar a proteção contra bots lá.

2 curtidas

Está? :thinking:

Qual a diferença? :thinking:

O endereço IP do servidor Discourse está na lista de permissões do Cloudflare e eu consigo usar curl/wget em ambas as imagens da linha de comando do servidor que executa o Discourse.

Estou com dificuldades para entender por que o onebox funciona em uma imagem, mas não na outra.

Como você controla ambos os servidores, pode verificar qual é a requisição exata, detalhando o verbo, user-agent e outros cabeçalhos, e tentar reproduzir com um cURL que a imite?

2 curtidas

Ah, excelente ideia :+1: