# Ajuda para excluir fotos do servidor que foram anexadas a posts excluídos

**URL:** https://meta.discourse.org/t/help-deleting-photos-from-server-that-were-attached-to-deleted-posts/294066
**Category:** Support
**Created:** [3 Fevereiro , 2024 20:54 UTC](https://meta.discourse.org/t/help-deleting-photos-from-server-that-were-attached-to-deleted-posts/294066 "2024-02-03T20:54:31Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![flash](https://avatars.discourse-cdn.com/v4/letter/f/f475e1/32.png) [@flash](https://meta.discourse.org/u/flash)
#### Post date: [3 Fevereiro , 2024 20:54 UTC](https://meta.discourse.org/t/help-deleting-photos-from-server-that-were-attached-to-deleted-posts/294066/1 "2024-02-03T20:54:31Z")

</div>

Após excluir vários milhares de postagens com fotos, os uploads na seção de administração permanecem os mesmos. Essa configuração foi definida como 1. Existe uma maneira de purgar todos os uploads associados a postagens excluídas mais rapidamente?

> ### purge deleted uploads grace period days
> 
> Período de carência (em dias) antes que um upload excluído seja apagado.

Eu fiz isso, o que vi em outra postagem, mas depois de reconstruir nada foi removido

> [@zogstrip](#):
>
> ```plaintext
> ./launcher enter app
> rails db
> DELETE FROM post_uploads WHERE post_id IN (SELECT id FROM posts WHERE deleted_at IS NOT NULL)
> 
> ```

Entrei no sidkiq

```plaintext
* Jobs::CleanUpUploads
* Jobs::PurgeDeletedUploads
* Jobs::DirectoryRefreshDaily
* Jobs::DirectoryRefreshOlder

```

Passei de 13,7 GB de uploads para 14 GB após excluir tudo. Parece que quanto mais eu excluo, maior o volume de dados de uploads.

---

<div class="post-metadata">

### Author: ![flash](https://avatars.discourse-cdn.com/v4/letter/f/f475e1/32.png) [@flash](https://meta.discourse.org/u/flash)
#### Post date: [3 Fevereiro , 2024 22:41 UTC](https://meta.discourse.org/t/help-deleting-photos-from-server-that-were-attached-to-deleted-posts/294066/2 "2024-02-03T22:41:06Z")

</div>

Não tenho certeza se entendo isso. Não carreguei nada, apenas excluí posts e categorias em um site de teste. Não há usuários no momento e já se passaram cerca de 3 horas. De 13.7 até agora, está mostrando isso. Uploads órfãos definidos para excluir em uma hora e isso não aconteceu.

 ![Screenshot 2024-02-03 233347](https://global.discourse-cdn.com/meta/original/4X/9/f/5/9f562183bd9eccf066e548057e52db57629cd23c.png)

Vejo este tópico que discute muito, mas nada aconteceu?

> [@How to make an image orphaned so that it gets removed?](https://meta.discourse.org/t/how-to-make-an-image-orphaned-so-that-it-gets-removed/79231):
>
> Because message revisions are kept, and older removed messages are also kept, and even removed topics are still there in database, how do I make an image orphaned so it gets removed automatically by a sidekiq job?

Então este aqui.

> [@Any api to purge old deleted posts / uploads](https://meta.discourse.org/t/any-api-to-purge-old-deleted-posts-uploads/73495/7):
>
> Call for Help! Can a clever person walk me through combining: AND to make an awesome orphaned uploads purger run from the console? I note that when I use rails db, I’m asked for Password for user discourse:. What do I do with that?

E eu tentei tudo em rails mencionado, sidekiq, e com comandos naquele tópico e ainda nada é excluído. Deveriam ser centenas, senão milhares de imagens excluídas, já que os usuários postaram fotos com cada tópico.

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [3 Fevereiro , 2024 23:46 UTC](https://meta.discourse.org/t/help-deleting-photos-from-server-that-were-attached-to-deleted-posts/294066/3 "2024-02-03T23:46:42Z")

</div>

Acho que a tabela `post_uploads` não existe mais. Agora é `uploads` e `upload_references`. Você pode precisar atualizar esse trecho antigo para levar isso em consideração se estiver tentando usar esse método.

Como você excluiu essas postagens? Apenas excluindo logicamente na interface? Acho que a configuração que limpa imagens órfãs (`clean orphan uploads grace period hours`) não leva em consideração se elas foram excluídas logicamente, e só se importa se a imagem ainda está na versão mais recente da postagem:

> [@zogstrip](#):
>
> Todos os detalhes estão disponíveis neste job
> 
> [https://github.com/discourse/discourse/blob/master/app/jobs/scheduled/clean\_up\_uploads.rb](https://github.com/discourse/discourse/blob/master/app/jobs/scheduled/clean_up_uploads.rb)
> 
> TL;DR: uma imagem é órfã se e somente se não for referenciada
> 
> - na versão mais recente de uma postagem
> - em um rascunho
> - em uma postagem na fila
> - em uma configuração de logotipo do site
> - em um emoji personalizado
> - em um tema
> - em uma imagem de avatar/fundo/cartão de usuário
> - em um logotipo/imagem de fundo de categoria

Acho que você pode selecionar todas as postagens no console Rails e usar o `PostDestroyer` nelas para excluí-las permanentemente, e então os uploads serão limpos na próxima vez que `Jobs::CleanUpUploads` for executado (ou acionado manualmente).

Se for uma categoria inteira, por exemplo, acho que você pode usar algo assim:

```plaintext
category = Category.where(id: CATEGORY_ID).pluck(:id)
topic = Topic.where(category_id: category).pluck(:id)

topic.each do |t|
  Post.where(topic_id: t).find_each do |p|
    PostDestroyer.new(Discourse.system_user, p).destroy
    p.destroy!
  end
end

```

Acho que também há alguma conversa neste tópico que você pode achar útil [Delete deleted-posts permanently in bulk? - #57 by Simon\_Manning](https://meta.discourse.org/t/delete-deleted-posts-permanently-in-bulk/203289/57?u=jammydodger)

> ⚠ E adicionarei o aviso usual sobre fazer um backup antes de fazer alterações no console Rails, apenas por precaução. Alerta de Faca Afiada. 🚨

(Apenas para sua informação, mas `Jobs::DirectoryRefreshDaily` e `Jobs::DirectoryRefreshOlder` são os que preenchem o [Diretório de Usuários](https://meta.discourse.org/u), então não são relevantes aqui)

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [16 Abril , 2024 11:00 UTC](https://meta.discourse.org/t/help-deleting-photos-from-server-that-were-attached-to-deleted-posts/294066/5 "2024-04-16T11:00:43Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
