#27836 closed New feature (fixed)
Add a way to delete directories through the file Storage API
Reported by: | jedie | Owned by: | ChillarAnand |
---|---|---|---|
Component: | File uploads/storage | Version: | dev |
Severity: | Normal | Keywords: | file storage API |
Cc: | anand21nanda@… | Triage Stage: | Accepted |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
It seems not possible to cleanup orphaned directories via storage API [1]
The problem: The default filesystem storage will call os.remove(name)
on storage.delete(name)
usage. So it's only possible to delete a file and not a directory.
Usecase:
I store files (via models.FileField
) in a sub-directory with a random token (via upload_to
callback).
I delete the file via post_delete
model signal and call storage.delete(file.path)
Now i can only delete the sub directory if i implement a own routine and use os.rmdir(path)
if the default filesystem storage is used.
[1] https://docs.djangoproject.com/en/dev/ref/files/storage/
Change History (6)
comment:1 by , 8 years ago
Description: | modified (diff) |
---|
comment:2 by , 8 years ago
Summary: | File Storage API: No way to delete directories?!? → Add a way to delete directories through the file Storage API |
---|---|
Triage Stage: | Unreviewed → Accepted |
Type: | Cleanup/optimization → New feature |
comment:3 by , 8 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
I wonder if it would be feasible and a good idea to allow
FileSystemStorage.delete()
to distinguish between files and directories and issueos.remove()
oros.rmdir()
as necessary?