Não é possível editar tópicos com imagem no backend S3

Olá a todos,

esbarramos em um problema estranho.

Nossa configuração:

  • Discourse: 2.8.0.beta2
  • S3: Minio
  • CDN: Myra

O S3 está configurado:

root@assets-prod-app01:~# sudo -u minio mc admin policy info minio readwrite-discourse
{
 "Version": "2012-10-17",
 "Statement": [
  {
   "Effect": "Allow",
   "Action": [
    "s3:ListBucketMultipartUploads",
    "s3:GetBucketLocation",
    "s3:ListBucket"
   ],
   "Resource": [
    "arn:aws:s3:::discourse"
   ]
  },
  {
   "Effect": "Allow",
   "Action": [
    "s3:*"
   ],
   "Resource": [
    "arn:aws:s3:::discourse/*"
   ]
  }
 ]
}

Mas, toda vez que editamos, recebemos a seguinte mensagem de erro:

Nos arquivos de log, vemos:

Aws::S3::Errors::NotImplemented (Um cabeçalho que você forneceu implica funcionalidade que não foi implementada)
lib/file_store/s3_store.rb:279:in `update_ACL'
lib/file_store/s3_store.rb:209:in `update_upload_ACL'
...

Existe alguma configuração que não consideramos, ou o Minio não é compatível com o Discourse?

Qualquer dica seria muito bem-vinda, pois estamos recebendo um pouco de pressão dos nossos usuários :frowning:

Obrigado desde já

Essa configuração é tão incomum?

Agradeceria muito se pudesse me orientar sobre o que investigar com mais detalhes ou o que alterar? @Falco, no momento estamos bastante travados… :frowning:

Você ativou a configuração do site secure_uploads? Isso não funcionará de forma alguma com o MinIO.

Olá @Falco,

infelizmente não…

A configuração do S3 está conforme a documentação em Usando Armazenamento de Objetos para Uploads (S3 e Clones)?

Sim, realmente letra por letra :slight_smile:

Desculpe incomodar, mas você consegue ver algo?

Oi, você tem alguma ideia? Desculpe incomodar…

Olá,

Hoje atualizei para a versão 2.8.0.beta2, mesmo erro:


Basta selecionar secure_media, o MinIO volta a funcionar.

image

@pmusaraj / @martin parece ser uma regressão causada por

https://github.com/discourse/discourse/pull/13110

que não levou em consideração as mesmas questões que foram corrigidas por

https://github.com/discourse/discourse/commit/5c5d8a307a816afcda4b97eecf49b836fc9ecb01

Então, o post_creator faz:

e models/post:

1 curtida

Já existe uma correção para isso que foi feita por motivos de desempenho, mas que também deve resolver seu problema:

https://github.com/discourse/discourse/commit/d1b2e9db3bcb7693094511edc415a953dc8a9116

Embora eu vá fazer uma correção no job para que ele termine antecipadamente se a mídia segura estiver desativada.

Na verdade, não posso fazer o acima porque queremos que os uploads de postagens sejam marcados como não seguros se a mídia segura estiver desativada ou se a postagem tiver sido movida para uma categoria diferente. Em vez disso, vou adicionar uma correção para capturar o erro Aws::S3::Errors::NotImplemented quando executarmos Discourse.store.update_upload_ACL(self). Dessa forma, clientes que não suportam ACLs privadas não devem ter problemas.

Edição: Eu fundi essa correção hoje, espero que ajude FIX: Handle storage providers not implementing ACLs by martin-brennan · Pull Request #13675 · discourse/discourse · GitHub. Acredito que também vamos lançar uma nova versão beta na próxima semana.

3 curtidas

Este tópico foi automaticamente fechado após 3 dias. Novas respostas não são mais permitidas.