Configure um provedor de armazenamento de objetos compatível com S3 para uploads

A Scaleway mudou alguma coisa? Funcionava para mim até 48 horas atrás, mas não funciona mais.

1 curtida

Sua conta está paga? O que há de errado? Alguma imagem funciona? Todas sumiram ou você simplesmente não consegue adicionar novas?

1 curtida

Você pode adicionar um pouco mais de suporte? Por exemplo, o Tencent COS da China é mais conveniente para usuários chineses, e o COS da Tencent Cloud tem nós de CDN em todo o mundo, o que é muito rápido para acessar.

Você já tentou? Funciona?

Eu o usei no ambiente de teste, mas só consigo fazer backup para Tencent COS, e espero que a equipe oficial do Discourse possa adicionar suporte ao Tencent COS para facilitar os desenvolvedores da China.

1 curtida

Acho que você precisará compartilhar o que fez e quais erros ou problemas teve. Então, alguém poderá sugerir como fazer funcionar. Você pode olhar os outros exemplos e ver se consegue usá-los para fazer funcionar.

Acho improvável que façam alterações no núcleo para dar suporte a isso.

1 curtida

Backblaze:

  • Configurei um bucket B2 na minha conta
  • Adicionei os detalhes à seção env do app.yml
  • Executei ./launcher rebuild app

…mas não vejo nenhuma confirmação no painel da minha instância do Discourse de que essas configurações entraram em vigor. Onde devo procurar?

1 curtida

Olá,

Consegui testar e usar com sucesso o Cloudflare R2 para uploads e backups. Post detalhado aqui Cloudflare R2: Navigating Setup and Handling Configuration Errors - #40 by kamaljain

Solicitaria que, por favor, testassem em seu ambiente e revisassem o status de "Funciona com Discourse" para "Sim" para o Cloudflare R2. Na verdade, é mais fácil que o S3 e mais econômico, gratuito se for inferior a 10 GB de armazenamento.

2 curtidas

Eu também testei uma configuração em multisite e também acho que está funcionando.

Vi algo que me faz perguntar se você consegue obter uma lista de backups. Tentarei verificar minha configuração.

1 curtida

Consigo ver os backups listados. Ainda não tentei a restauração.

1 curtida

Oi mano, posso conversar com você? Estou com alguns problemas ao configurar o MinIO.
Obrigado.

Configuração do iDrive

Apenas queria relatar que usar a versão E2 do armazenamento s3 do iDrive funciona perfeitamente com estas configurações:

Configurações de ENV no arquivo yaml

Certifique-se de que seu bucket tenha pelo menos permissões Públicas e de Leitura nas configurações do iDrive.

Estas são as configurações que uso para um bucket compartilhando uploads e backups.

DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: sua-região
DISCOURSE_S3_ENDPOINT: https://seu-endpoint-idrive.dev
DISCOURSE_S3_ACCESS_KEY_ID: sua-chave-de-acesso
DISCOURSE_S3_SECRET_ACCESS_KEY: sua-chave-secreta
DISCOURSE_S3_CDN_URL: https://seu-cdn-personalizado.com/uploads
DISCOURSE_S3_BUCKET: seu-nome-de-bucket/uploads
DISCOURSE_S3_BACKUP_BUCKET: seu-nome-de-bucket/backups
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_INSTALL_CORS_RULE: false

Por padrão, o iDrive tem Compartilhar tudo nesta região com todas as origens… então deve funcionar imediatamente, independentemente das fontes. Bloqueie para seus próprios domínios, se desejar.

Eu uso um certificado de origem Cloudflare para criar um CNAME que aponta para o endpoint do iDrive.


Sincronizar Anexos Existentes

Reconstruir

Reconstrua o aplicativo após alterar essas configurações de ENV.


Carregar e Re-processar

Em seguida, entre no contêiner e execute

rake uploads:migrate_to_s3

Observe o upload, depois execute

rake posts:rebake_uncooked_posts

Saia do contêiner


Adicionar à seção hooks do arquivo yaml

Na seção hooks

after_assets_precompile:
    - exec:
        cd: $home
        cmd:
          - sudo -E -u discourse bundle exec rake s3:upload_assets
          - sudo -E -u discourse bundle exec rake s3:expire_missing_assets

Isso garante que os arquivos js/css sejam enviados para o iDrive após seus anexos, caso contrário, você terá muitos erros no console do navegador, pois todos estarão faltando.


Reconstruir

Reconstrua novamente após o comando de assets ser executado.


Tudo deve ficar bem!

2 curtidas

Talvez o serviço Hetzner Object Storage deva ser adicionado à tabela?

2 curtidas

Consegui usar o Contabo para uploads de arquivos. Tanto arquivos antigos (migrados) quanto novos uploads funcionaram perfeitamente. No meu caso, a URL do bucket era https://eu2.contabostorage.com/mybucket.
O truque foi definir EU2 como o nome do bucket e https://contabostorage.com/mybucket como o endpoint.
O único problema é que, ao carregar o site, ele também solicita outros arquivos, como o js dos plugins, do bucket e eles não carregam por estarem indisponíveis. Bem, entendi que isso acontece porque defini a URL da CDN como a mesma do bucket. Isso ainda não está muito claro para mim, alguém pode me dizer como configurar? Pelo que entendi, tenho que criar um endereço cname que aponte para o domínio principal (servidor discourse) e proxy-lo com o cloudflare, isso está correto?

1 curtida

Você esqueceu desta parte:

1 curtida

Tenho certeza de que fiz isso, mas talvez tenha cometido um erro. No final, restaurei um backup, então estou indo um pouco de memória… Mas então, pergunto-me, por que é desaconselhável configurar um CDN como o Bucket? Que problemas isso pode causar? Tentarei novamente amanhã.
Obrigado

1 curtida

Eu não acho que o problema que você descreve seria porque você definiu a URL do CDN como a URL do bucket (ou seja, se os uploads funcionam, mas os ativos não).

2 curtidas

Atualizarei você amanhã, obrigado

1 curtida

E funcionou :partying_face:
Passo a passo do que fiz esperando ajudar outros:

editei o app.yml e adicionei

  after_assets_precompile:
    - exec:        cd: $home
        cmd:          - sudo -E -u discourse bundle exec rake s3:upload_assets
          - sudo -E -u discourse bundle exec rake s3:expire_missing_assets

depois de hooks: (logo após git clone plugins…)
e

  DISCOURSE_USE_S3: true
  DISCOURSE_S3_REGION: EU
  DISCOURSE_S3_ENDPOINT: https://contabostorage.com/bucketname
  DISCOURSE_S3_ACCESS_KEY_ID: accesskey
  DISCOURSE_S3_SECRET_ACCESS_KEY: secretaccesskey
  DISCOURSE_S3_CDN_URL: https://eu2.contabostorage.com/randomlettersthatcontaboaddstothelinks:bucketname
  DISCOURSE_S3_BUCKET: eu2
  DISCOURSE_BACKUP_LOCATION: s3
  DISCOURSE_S3_INSTALL_CORS_RULE: false

depois das configurações de e-mail
então defini os mesmos valores no menu do discourse e habilitei os uploads S3.
Reconstruí o app com

cd /var/discourse
sudo ./launcher rebuild app

então

./launcher enter app
rake uploads:migrate_to_s3

Isso leva um tempo, no meu caso algumas horas (80k arquivos, 100GB)

Quando terminar

rake posts:rebake_uncooked_posts
4 curtidas

Atualização: alguns usuários não conseguiram carregar o site (recursos e arquivos). Descobrimos que o domínio contabostorage.com estava presente em algumas listas de bloqueio como um site de phishing. A solução foi simples:

configure um subdomínio files.mydomain.com como descrito aqui Can I Setup a Custom Domain for My Object Storage? : Contabo

Atualizado DISCOURSE_S3_CDN_URL: https://files.mydomain.com em app.yml

Em seguida

cd /var/discourse
sudo ./launcher rebuild app

e para completar o trabalho

./launcher enter app
rake posts:rebake

Agora todos os recursos e uploads são carregados de https://files.mydomain.com/pathtofile/file.ext

Feito

2 curtidas