Como permitir o download de imagens junto com outros dados do usuário (CSV) na seção de atividades?

Nós (alguns voluntários da comunidade Krita) configuramos um servidor Discourse para a comunidade do Krita artist. A configuração é muito semelhante à do Blenderartists.org.

Sendo um fórum relacionado a software de arte, as discussões conterão muitas imagens. Do ponto de vista do GDPR, o Discourse oferece uma maneira de baixar os dados do usuário na seção de atividades do perfil. No entanto, notei que o download não inclui as imagens que o usuário postou no fórum. Gostaria de saber se há alguma maneira de incluir as imagens postadas pelos usuários nos arquivos ZIP baixados. Existe algum plugin que ofereça esse recurso?

Obrigado.

Infelizmente, isso não está disponível atualmente no núcleo nem em nenhum dos plugins que conheço.

Deveríamos, em tese, incluir todas as imagens que o usuário enviou no download dos dados.

Tecnicamente, eles ainda têm as URLs, então poderiam apenas analisar e recuperá-las. Preocupa-me que usuários com muitas imagens acabem consumindo muito tempo de servidor ao clicar no botão.

Desculpe se isso parecer uma ideia boba, mas seria útil fornecer ao usuário um período de tempo predeterminado para retornar e baixar o arquivo zip? Durante esse período, a criação do zip pode ser realizada quando houver menos atividade no servidor.

Estou desconfortável em permitir que um usuário final aleatório, com muita atividade, tenha a capacidade de acionar o download de meio gigabyte de dados do S3 para reempacotamento.

Prefiro muito mais fornecer a eles um link para um script que possam executar contra a exportação para baixar as imagens.

Não sou especialista, mas acredito que, sob a perspectiva do GDPR, essa não seja uma solução aceitável. @RGJ, você sabe?

Fechando isso por 6 dias para que nosso advogado tenha chance de ler antes que isso se desvie para um drama sobre a LGPD.

Você ainda tem a capacidade de executar o script como administrador do usuário e enviar imagens por e-mail, se quiser.

Alguma atualização sobre isso? Um script/ferramenta para usar ou uma correção no núcleo?

Sei como fazer manualmente, mas sou mais sofisticado que os outros.

Só para expandir isso,

![Screenshot_20200422-132435|281x500](upload://dYJTG1LPTCy8fp52SrPh7a1p89j.png)

veio de um user-archive.csv gerado hoje. Esse não é um link muito amigável para o usuário.

Fiz uma exportação de post pela primeira vez desde maio e vi que ela recebeu algumas melhorias, mas uma escolha estranha (para mim):

Mas não há imagens nela e ainda vejo fragmentos (testado com meta) com URLs muito difíceis de usar, como: ![screen-20200627-125657|385x397](upload://nsHMu7zGRvQ1Y9WuIPrrygpWbC6.png) (note que essa é uma imagem que enviei após a atualização de maio).

Inserir imagens no arquivo seria um grande incômodo. O que poderíamos incluir facilmente é o post cooked junto com o raw, para que as imagens e tudo o mais que é transformado esteja associado de uma maneira padrão que possa ser facilmente analisada.

Como isso funciona com a opção de URLs pré-assinadas introduzida recentemente? Confesso que não sei muito sobre como isso é implementado, mas meu receio é que as URLs não sejam estáveis.

(Com isso quero dizer: Secure Uploads )

Se colocarmos a postagem processada como sugere @Falco, as URLs serão /secure-media-uploads/blah. A URL assinada é gerada apenas quando o upload é solicitado a partir da URL de mídia segura, então você não terá problemas.

Qual é o status deste pedido de funcionalidade (se é que é isso)?

Vamos dividir isso em várias perguntas menores:

  1. Atualmente, existe alguma maneira de um usuário obter uma cópia de todas as imagens incluídas em suas postagens?
  2. Existe alguma maneira de obter (ou recriar) essas postagens em seu formato “cozido”, pelo menos na medida em que as imagens carregadas estejam nos locais corretos?

Embora eu não tenha certeza se conseguiria escrever um script completo, tentei descobrir como reconstruir o URL das imagens com base nas informações atualmente incluídas no user_archive.csv, mas não vejo como isso seria possível, dado que parece não haver correlação entre o link da imagem fornecido no arquivo csv e o URL público dessa imagem no fórum.

Por exemplo, tenho ![image|499x436](upload://tIh81VxrDGPzUkxhikPmbgFGbO6.png) em meu arquivo csv e o URL dessa imagem no fórum é https://forum.example.com/uploads/default/original/2X/d/d04053334ed6a40db3cdcf83c1c6eb139079494e.png, então, mesmo que o script usasse tIh81VxrDGPzUkxhikPmbgFGbO6.png em combinação com alguma URL base, ele não seria capaz de recuperar a imagem, certo? Ou uma imagem de alguma forma tem múltiplas identidades?

Obrigado por reativar este tópico! Eu não o tinha visto antes. :smiley:

Analisando-o, compartilho tanto a aparente crença do @codinghorror de que as imagens devem ser acessíveis dessa forma, quanto a preocupação do @sam sobre as demandas que isso colocaria nos recursos do lado do servidor - particularmente em casos onde o usuário não está interessado nas imagens em si.

Não posso falar sobre a viabilidade disso, mas de um ponto de vista estritamente de UX, sinto que um botão separado de baixar imagens apresentado ao lado da opção de download existente, ou um pop-up perguntando se você deseja que as imagens sejam incluídas ao usar a opção de download existente seria o melhor.

No momento não, você teria que ir ao fórum. Eu apoio a alteração do @Falco como uma melhoria rápida e provisória para a situação.

Você quer dizer que teria que obter as imagens navegando até as postagens reais? Mas isso não lhe daria imagens de postagens que foram excluídas ou ocultadas de você, certo?

Em relação à

Quando @sam e @Falco concordam com algo, isso significa que foi adicionado a algum pipeline?

às vezes sim… às vezes não. Isso ainda não foi agendado.

Vou priorizar a adição de “cooked” à exportação, é uma mudança fácil, deve acontecer em algum momento no próximo mês.