Use FastDestroy for deleting uploads
What does this MR do?
The idea is to:
- use similar approach as in
app/models/ci/build_trace_chunks
- gather list of file paths when deleting a project, in after commit delete these paths
- do not use carrier wave for this (so we avoid building/using deleted models)
- deletion of files is done asynchronously in batches of 100
TODO
-
make sure that all models use model id in file path (so there is no problem if model with same name is recreated before uploads are really deleted) -
schedule deletion asynchronously in batches and in parallel using sidekiq -
add tests
Are there points in the code the reviewer needs to double check?
Why was this MR needed?
Closes #46069 (closed)
Screenshots (if relevant)
Does this MR meet the acceptance criteria?
-
Changelog entry added, if necessary -
Documentation created/updated -
API support added -
Tests added for this feature/bug - Conforms to the code review guidelines
-
Has been reviewed by a UX Designer -
Has been reviewed by a Frontend maintainer -
Has been reviewed by a Backend maintainer -
Has been reviewed by a Database specialist
-
-
Conforms to the merge request performance guidelines -
Conforms to the style guides -
Conforms to the database guides -
If you have multiple commits, please combine them into a few logically organized commits by squashing them -
Internationalization required/considered -
End-to-end tests pass ( package-and-qa
manual pipeline job)
What are the relevant issue numbers?
Closes #46069 (closed)
Edited by Kamil Trzciński (Back 2025-01-01)