How to Delete Uploaded Files?

I wanted to know how to delete files when we don’t want them. Like sometimes users upload large size files and upload multiple copies of the same file. How can I delete the repeatedly uploaded items and keep my disk space clean? We run a blogging community forum at and we often need to upload graphic images and some css files

There is no way to delete files from the UI currently.

There is a cleanup task that automatically removes images which are no longer referenced in any Discourse post. It’s something @zogstrip added a year+ ago.


That is weird but at least I am glad the cleanup task exists. Images and uploaded files are an important part of community activity and there should have been a better control system for it.

Why is it weird? If an image is not displayed in any posts, why should it exist in the filesystem? Who will view it, and how?

1 Like

You are right for images but what about js files. We sometimes need to host files at our forum and then link to them from </head> tag

That’d be a very risky use of uploads, since you would be allowing all users to upload javascript files that your site would then execute.

I … can’t … say I would recommend that.


That is right but we upload the js ourselves and have not given rights to anyone else. We disable the js upload as soon as we are done uploading some front-end js files.

Then make sure a hidden staff post links to the files. (There is a private staff category in every install.) And you should be fine.

1 Like

I have just one new question in mind that is troubling me.

How does Discourse handles illegal hosting done by users using the PM system? What if a user uploads large files via PM and then links to it from an external source. Will cleanup task delete them or not?

Good question! Illegal activity in Messages is another reason admins need visibility into them, cc: @downey.

There is not a way at the moment to browse the largest file uploads but that would be a good thing to have eventually.


I am glad you agreed here. I will be more than pleased to have this option added in future updates :innocent:

“Illegal” is going to depend on the jurisdiction. For example, in the United States, the Online Copyright Infringement Liability Limitation Act provides safe harbor for service providers (such as someone running a Discourse site) against actions of their users. As long as the service provider responds to notice of infringing activity, and can produce good records of what that user did or did not do (emphasis hint for @codinghorror), and how they responded to that user and that user’s infringing content, then they are generally not liable for those actions.

In other words, it may not (or may, depending on where you are) be the job of the service provider to police and snoop on its users’ activities.

Sure, Nginx or Apache server logs would exist in all cases for all websites. So you are covered. This is real basic web stuff.

Whether the uploads are illegal or not, the site owner might not appreciate a user who signs up, achieves trust level 1 (necessary to message at all) and then posts 1 GB of files per day in PMs.

1 Like

Still no such feature? How can I remove uploaded image?

Uploaded files that aren’t used anywhere are automatically removed.

Are you talking about an image that is used somewhere?


This are a good news, thank you. Can I delete 'em manually?

For the avoidance of doubt, when a post is edited and the only instance anywhere of an image/dropbox linked image is removed, is that image classed as not being used anywhere? Currently it is viewable when reviewing the edit history, something I wasn’t expecting.

Those are two different things.

An image has been uploaded and has a Upload record in the database.
A “dropbox linked image” is a link to an image that is “served” to the clients (browsers) by dropbox.

The automated cleanup is only about uploaded images. Not linked ones.


So an image with an upload record that was never actually posted or was edited out of a comment would be deleted automatically. That correct?


The png above is coming from a dropbox link. My previous experience with a .gif was that upon deleting the underlying link the image persisted in the comment. If I edited the post and removed the link the image persisted in the original iteration of the post. This post will be edited so I hope it demonstrates what I mean!

This doesn’t seem like it’s being “served”, it seems like it’s being uploaded. Is that not the case?

Edit #2

  1. I deleted the link at the dropbox end and immediately it stopped being viewable in the post.

  2. I re-enabled the link, and instead edited the post to remove the link but in another browser I wasn’t able to view past edits of the post - there is no pencil - to test this:
    If I edited the post and removed the link the image persisted in the original iteration of the post.

The behavior in point one runs counter to the post here, if you look through the first post edit history you can see a .gif. The underlying link does not function and the post doesn’t feature it anymore so I’m confused by the differences here and there.