Como estou constantemente frustrado com a quebra do plugin Azure Blob Storage, executei um servidor Flexify.IO para traduzir o protocolo Azure para o S3.
No entanto, após configurá-lo no Discourse, não funciona. O erro é:
Falha ao abrir conexão TCP para support.xxx.xxx.xxx.xxx:443 (getaddrinfo: Nome ou serviço desconhecido)
onde xx.xx.xx.xx é o endereço IP do gateway S3 e support é o nome do bucket…
O engraçado é que… usei o S3 Browser para testar o endpoint e funcionou perfeitamente.
Então, alguém gentil pode me dizer o que fiz de errado?
Só consigo ver que isso pode ser devido à região, já que a região exposta pelo endpoint é eastasia (uma região Azure válida), mas só posso escolher entre as regiões padrão da AWS em uma lista. No entanto, ainda é estranho, porque o erro parece indicar falha na conexão com o próprio endpoint, e não uma incompatibilidade de região.
A mensagem de erro diz exatamente isso. getaddrinfo: Name or service not known é uma falha na consulta DNS; nunca haverá um nome de host como “support.303.303.303.303”.
Ah, desculpe. support é o nome do bucket. Posso ver que o S3 simplesmente adiciona o nome do bucket como prefixo ao nome de domínio, e o Discourse assume isso.
Sim, eu percebi isso. Então preciso codificar os endpoints diretamente no app.yaml, correto?
Ele ainda está tentando acessar support.??.??.??.??:443.
Então, imagino que no Discourse o bucket deve formar um subdomínio?
EDIÇÃO 1
Tudo bem, removi as configurações do app.yaml e criei um subdomínio com support nele que aponta para xx.xx.xx.xx. Agora, quando faço o upload, ele gira por um longo tempo e depois retorna um erro genérico:
Aws::S3::Errors::BadRequest
Existe alguma maneira de obter a mensagem de erro exata?